AWK: additionner certains champs des lignes d'un fichier dont
Résolu
bob737
Messages postés
157
Statut
Membre
-
bob737 Messages postés 157 Statut Membre -
bob737 Messages postés 157 Statut Membre -
le deuxième champ est identique.
Bonjour,
Exemple :
VAR1;TOTO;5;10;15
VAR1; TOTO;10;20;30
==> VAR1;TOTO;15;30;45
Merci. ;-)
Bonjour,
Exemple :
VAR1;TOTO;5;10;15
VAR1; TOTO;10;20;30
==> VAR1;TOTO;15;30;45
Merci. ;-)
A voir également:
- AWK: additionner certains champs des lignes d'un fichier dont
- Awk dédoublonner un print ✓ - Forum Shell
- Suppression de lignes en awk ✓ - Forum Shell
- Awk : tri selon la date ✓ - Forum Shell
- SED ou Awk sous windows ?? - Forum Windows
- Awk : remplacement d'un élément conditionnel - Forum Shell
2 réponses
awk 'BEGIN {FS=OFS=","} {a[$2]=a[$2]; SUM1+=$3; SUM2+=$4; SUM3+=$5} END { print SUM1, SUM2, SUM3}' test
j'avance mais ma condition ne marche pas....
j'avance mais ma condition ne marche pas....
hello
$ cat fichier
VAR2;TATA;1;20;25
VAR2; TATA;10;20;30
VAR1;TOTO;5;10;15
VAR1; TOTO;10;20;30
$ awk -F " *; *" -v OFS=";" '{t[$2]=$1; t1[$2]+=$3; t2[$2]+=$4; t3[$2]+=$5} END {for(n in t)print t[n], n, t1[n], t2[n], t3[n]}' fichier
VAR2;TATA;11;40;55
VAR1;TOTO;15;30;45
cooool merci.
je n'ai pas d'espace dans mes champs et 8 champs sur chaque ligne soit
awk 'BEGIN {FS=OFS=","} {t[$2]=$1; t1[$2]+=$3; t2[$2]+=$4; t3[$2]+=$5; t4[$2]+=$6; t5[$2]+=$7; t6[$2]+=$8} END {for(n in t)print t[n], n, t1[n], t2[n], t3[n], t4[n], t5[n], t6[n]}' tmp_flux.csv
Par contre, l'addition de certaine valeur du champ 5 donne:
6.18188e+09 au lieu de 6181884397. Y a-t-il moyen de garder la mise en forme?
je n'ai pas d'espace dans mes champs et 8 champs sur chaque ligne soit
awk 'BEGIN {FS=OFS=","} {t[$2]=$1; t1[$2]+=$3; t2[$2]+=$4; t3[$2]+=$5; t4[$2]+=$6; t5[$2]+=$7; t6[$2]+=$8} END {for(n in t)print t[n], n, t1[n], t2[n], t3[n], t4[n], t5[n], t6[n]}' tmp_flux.csv
Par contre, l'addition de certaine valeur du champ 5 donne:
6.18188e+09 au lieu de 6181884397. Y a-t-il moyen de garder la mise en forme?