Herramienta de estadísticas. Realiza operaciones numéricas y estadísticas básicas en archivos de datos textuales de entrada. Incluye la herramienta decorate. Los ejemplos en el directorio /usr/share/doc/datamash/examples/. Algunas opciones: count [num de elementos], sum [suma], min [elemento más bajo], max [el mayor], mean [la media], median [el del medio]...
$ seq 7 12 | datamash count 1
$ seq 3 | datamash max 1 min 1 mean 1 median 1
$ datamash -g 2 min 3 max 3 < /usr/share/doc/datamash/examples/scores.txt
$ datamash -g 2 mean 3 sstdev 3 < /usr/share/doc/datamash/examples/scores.txt
Una línea de encabezado es una primera línea opcional en los archivos de entrada o salida, que etiqueta cada columna. Datamash puede generar una línea de encabezado en el archivo de salida, incluso si el archivo de entrada no tiene una línea de encabezado (scores.txt no tiene una línea de encabezado, la primera línea del archivo contiene datos). Use --header-out para agregar una línea de encabezado a la salida (cuando la entrada no contiene una línea de encabezado):
$ datamash --header-out -g 2 count 3 mean 3 pstdev 3 < /usr/share/doc/datamash/examples/scores.txt
$ datamash -s -g 13 count 2 < /usr/share/doc/datamash/examples/genes.txt
$ datamash -s -g 13 count 2 collapse 2 < /usr/share/doc/datamash/examples/genes.txt
$ datamash -H -s -g 13 count 2 collapse 2 < /usr/share/doc/datamash/examples/genes.txt
$ echo -e '1.0\n2.5\n3.1\n4.3\n5.6\n5.7' | tr '.' ',' | datamash mean 1
$ echo -e '1\n2\nNa\n3\nNaN' | datamash --narm mean 1
$ echo '3,14 42 1000 -51' | tr ' ' '\n' | datamash sum 1
1.-
$ cat table.txt
brown bread mat hair 42
blue cake mug shirt -7
yellow banana window shoes 3.14
$ datamash -t' ' sum 5 <table.txt
38.14
2.-
$ cat scores.csv
Name,Maths,Physics,Chemistry
Ith,100,100,100
Cy,97,98,95
Lin,78,83,80
Er,60,70,90
$ datamash -t, transpose <scores.csv
Name,Ith,Cy,Lin,Er
Maths,100,97,78,60
Physics,100,98,83,70
Chemistry,100,95,80,90
3.-
$ cat toys.txt
car blue
car red
car yellow
truck brown
bus green
bus maroon
rocket white
$ datamash -t' ' -g1 collapse 2 <toys.txt
car blue,red,yellow
truck brown
bus green,maroon
rocket white
$ datamash -t' ' -g1 count 2 rand 2 <toys.txt
car 3 red
truck 1 brown
bus 2 green
rocket 1 white