BASH moyenne de 2 colonne

Résolu/Fermé
donkey - 29 avril 2009 à 23:02
 donkey - 30 avril 2009 à 00:51
Bonjour,
J'ai un fichier qui contient 2 colonne de chiffre et j'aimerais que qu'a la fin du fichier s'affiche la moyenne de chaque colonne

Exemple:

5 8
2 9
3 5
----
3.33 7,3


merci d'avance
A voir également:

4 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
29 avril 2009 à 23:42
Salut,
[tmpfs]$ cat fich
5 8
2 9
3 5

[tmpfs]$ awk '{
print $0
}
{
sum1+=$1;sum2+=$2
}
END {
printf "%s\n%.2f %.2f\n","----------",sum1/NR,sum2/NR
}
' fich

5 8
2 9
3 5
----------
3,33 7,33

[tmpfs]$
;-))
1
merci mais je n'ai pas totalement saisi le fonctionnement du script (je débute)
si j'ai bien compris on stocke ce que contient les colonnes dans un variables temporaires, puis ensuite on reprend cette variable pour faire les calculs et on affiche le résultats ?
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
30 avril 2009 à 00:15
En fait j'ai fait ça avec "awk", beaucoup plus adapté pour ce genre de traitement que du bash pur.

print $0
On affiche chaque ligne du fichier

sum1+=$1
On additionne le contenu de la colonne 1 que l'on stocke dans la variable sum1

sum2+=$2
On additionne le contenu de la colonne 2 que l'on stocke dans la variable sum2

printf "%s\n%.2f %.2f\n"
On formate l'affichage de la sortie.

sum1/NR
NR = le nombre de ligne. Donc total colonne que divise nombre de ligne

sum2/NR
idem
0
merci j'en aurais appris un peu plus durant la nuit ^^
0