objectif
Calculer rapidement des statistiques sur des fichiers CSV/TSV directement en ligne de commande.
code minimal
# CSV avec en-têtes: group by "team", moyenne de "score"
datamash -t, --header-in --header-out -g team mean score < results.csv
utilisation
# multiples métriques par groupe
datamash -t, --header-in --header-out -g team count score mean score median score min score max score < results.csv
# TSV (par défaut: tab) et tri préalable (recommandé pour cohérence)
sort -k1,1 data.tsv | datamash --header-in --header-out -g key sum 2 sstdev 3
variante(s) utile(s)
# changer le séparateur de sortie vers ','
datamash -t, --output-delimiter=, --header-in -g team mean score < results.csv
# retraiter un JSON en CSV puis datamash (jq)
jq -r '.items[] | [.team, .score] | @csv' data.json | datamash -t, -g 1 mean 2
notes
-t,indique le séparateur d’entrée; sans option, c’est TAB.- triez par clé (ex:
sort -k1,1) pour éviter des regroupements non déterministes. --header-in/--header-outconservent les noms de colonnes.