Somme des champs de plusieurs lignes
Résolu
GHISLINO
Messages postés
214
Date d'inscription
Statut
Membre
Dernière intervention
-
GHISLINO Messages postés 214 Date d'inscription Statut Membre Dernière intervention -
GHISLINO Messages postés 214 Date d'inscription Statut Membre Dernière intervention -
bonjour
je veux faire avec AWK ou NAWK la somme des champs 6 et 7 des lignes contenants le même champ 2 pour avoir en sortie le fichier2
et aussi supprimer les lignes dont les champs 6 et 7 sont égal à zéro.
Fichier 1
e_gsm;AKROU;evolium:monoStandardBtsIndoor;BSCDABOU;MBI5 ;2;2
e_gsm;AKROU;evolium:monoStandardBtsIndoor;BSCDABOU;MBI5 ;2;2
e_gsm;AKWABA_1;evolium:monoStandardBtsIndoor;BSCLUM6;MBI5 ;2;2
e_gsm;AKWABA_1;evolium:monoStandardBtsIndoor;BSCLUM6;MBI5 ;2;2
e_gsm;AKWABA_1;evolium:monoStandardBtsIndoor;BSCLUM6;MBI5 ;2;2
e_gsm;ANADA_KOUADIOKRO_1;evolium:monoStandardBtsIndoor;BSCBKE2;MBI3 ;2;2
e_gsm;ANADA_KOUADIOKRO_1;evolium:monoStandardBtsIndoor;BSCBKE2;MBI3 ;2;2
e_gsm;ANADA_KOUADIOKRO_1;evolium:monoStandardBtsIndoor;BSCBKE2;MBI3 ;2;2
e_gsm;AMERICAIN_1;evolium:undefined;;;0;0
e_gsm;AMERICAIN_1;evolium:undefined;;;0;0
e_gsm;AMERICAIN_1;evolium:undefined;;;0;0
Fichier2
e_gsm;AKROU;evolium:monoStandardBtsIndoor;BSCDABOU;MBI5 ;4;4
e_gsm;AKWABA_1;evolium:monoStandardBtsIndoor;BSCLUM6;MBI5 ;6;6
e_gsm;ANADA_KOUADIOKRO_1;evolium:monoStandardBtsIndoor;BSCBKE2;MBI3 ;6;6
Merci d'avance
cdlt.
je veux faire avec AWK ou NAWK la somme des champs 6 et 7 des lignes contenants le même champ 2 pour avoir en sortie le fichier2
et aussi supprimer les lignes dont les champs 6 et 7 sont égal à zéro.
Fichier 1
e_gsm;AKROU;evolium:monoStandardBtsIndoor;BSCDABOU;MBI5 ;2;2
e_gsm;AKROU;evolium:monoStandardBtsIndoor;BSCDABOU;MBI5 ;2;2
e_gsm;AKWABA_1;evolium:monoStandardBtsIndoor;BSCLUM6;MBI5 ;2;2
e_gsm;AKWABA_1;evolium:monoStandardBtsIndoor;BSCLUM6;MBI5 ;2;2
e_gsm;AKWABA_1;evolium:monoStandardBtsIndoor;BSCLUM6;MBI5 ;2;2
e_gsm;ANADA_KOUADIOKRO_1;evolium:monoStandardBtsIndoor;BSCBKE2;MBI3 ;2;2
e_gsm;ANADA_KOUADIOKRO_1;evolium:monoStandardBtsIndoor;BSCBKE2;MBI3 ;2;2
e_gsm;ANADA_KOUADIOKRO_1;evolium:monoStandardBtsIndoor;BSCBKE2;MBI3 ;2;2
e_gsm;AMERICAIN_1;evolium:undefined;;;0;0
e_gsm;AMERICAIN_1;evolium:undefined;;;0;0
e_gsm;AMERICAIN_1;evolium:undefined;;;0;0
Fichier2
e_gsm;AKROU;evolium:monoStandardBtsIndoor;BSCDABOU;MBI5 ;4;4
e_gsm;AKWABA_1;evolium:monoStandardBtsIndoor;BSCLUM6;MBI5 ;6;6
e_gsm;ANADA_KOUADIOKRO_1;evolium:monoStandardBtsIndoor;BSCBKE2;MBI3 ;6;6
Merci d'avance
cdlt.
3 réponses
-
hello
l'ordre a changé, est-ce un problème ?$ nawk 'BEGIN {FS=OFS=";"} $6==0 && $7==0 {next} {t[$2]=$0; t6[$2]+=$6; t7[$2]+=$7} END {for(n in t){$0=t[n]; $6=t6[n]; $7=t7[n]; print}}' fichier1 e_gsm;ANADA_KOUADIOKRO_1;evolium:monoStandardBtsIndoor;BSCBKE2;MBI3 ;6;6 e_gsm;AKROU;evolium:monoStandardBtsIndoor;BSCDABOU;MBI5 ;4;4 e_gsm;AKWABA_1;evolium:monoStandardBtsIndoor;BSCLUM6;MBI5 ;6;6 $ -
plus court
nawk 'BEGIN {FS=OFS=";"} $6 || $7 {t[$2]=$0; t6[$2]+=$6; t7[$2]+=$7} END {for(n in t){$0=t[n]; $6=t6[n]; $7=t7[n]; print}}' fichier1 -
bonjour Dubcek
Mille fois merci pour ton aide.
ça marche très bien les deux codes
cdlt