[gawk/shell] moyenne de nombres réels
Bonjour,
j'ai un fichier de 5 colonnes avec des nombrtes réels, je souhaite faire une moyenne simple par ligne de ces 5 colonnes.
ma ligne de commande est :
gawk '{printf "%6.2f\n",($1+$2+$3+$4+$5)/5}' file1 > file2
gawk me fait une moyenne des valeurs entières de chacune des colonnes, au lieu de considérer la valeur réelle.
pourtant j'ai spécifié une sortie au format réel dans file2, mais peut-être faut il préciser le format des colonnes (nombres réels) dans file1?
Auriez vous une idée ??
si ce n'est pas clair, faites moi signe !
Merci d'avance
j'ai un fichier de 5 colonnes avec des nombrtes réels, je souhaite faire une moyenne simple par ligne de ces 5 colonnes.
ma ligne de commande est :
gawk '{printf "%6.2f\n",($1+$2+$3+$4+$5)/5}' file1 > file2
gawk me fait une moyenne des valeurs entières de chacune des colonnes, au lieu de considérer la valeur réelle.
pourtant j'ai spécifié une sortie au format réel dans file2, mais peut-être faut il préciser le format des colonnes (nombres réels) dans file1?
Auriez vous une idée ??
si ce n'est pas clair, faites moi signe !
Merci d'avance
Configuration: Linux Mandriva Firefox 1.0.7
5 réponses
-
essayer en divisant par /5.0
-
en faisant ça, il rajoute uniquement au résultat une décimale après la virgule
mails les $1, $2 ... sont toujours arrondis sur la valeur entière
par exemple pour une ligne où il y a 12.3, 14.5 et 15.6, la moyenne vaut 14.13
et bien, gawk me donne la moyenne de 12, 14 et 15 soit 13.66
il manque un argument à priori ... -
et avec 12,3 14,5 ?
-
oui, il faut des virgules à la place des points et ça marche !
merci bien -
il doit y avoir une variable d'environnement ou une option de gawk qui définitr les paramètres de langue, comme le format
de la date ou le séparateur point ou virgule.
set | grep LC
ça doit être
export RC_LC_NUMERIC='.'
ou export RC_LC_NUMERIC='POSIX'