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   -
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.


A voir également:

3 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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
$  
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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
0
GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour Dubcek

Mille fois merci pour ton aide.
ça marche très bien les deux codes

cdlt
0