BASH moyenne de 2 colonne
Résolu/Fermé
A voir également:
- BASH moyenne de 2 colonne
- Déplacer une colonne excel - Guide
- Formule moyenne excel - Guide
- Colonne word - Guide
- 2 comptes whatsapp - Guide
- Word numéro de page 1/2 - Guide
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 895
29 avril 2009 à 23:42
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]$;-))
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 ?
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 ?
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
30 avril 2009 à 00:15
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
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