Somme des champs de plusieurs lignes

Résolu/Fermé
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023 - 1 août 2013 à 12:49
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023 - 2 août 2013 à 10:54
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
1 août 2013 à 14:18
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
1 août 2013 à 15:28
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 lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
2 août 2013 à 10:54
bonjour Dubcek

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

cdlt
0