Awk : sommer plusieurs lignes, dont le nombre est variable
Bonjour,
J'ai un fichier contenant plusieurs iterations d'operations ; ce nombre change pour chaque fichier, mais est fixe dans un fichier.
Et pour chaque iteration, je veux faire la somme, et ce avec awk (enfin c'est ce qui semble le plus simple).
Ca sera plus clair avec un exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| INFO : nb_operation 4
Iteration 1 :
pattern=10
pattern=30
pattern=40
pattern=20
end_iteration
Iteration 2 :
pattern=3
pattern=4
pattern=5
pattern=4
end_iteration
[...] |
Et ce que je veux recuperer :
Code:
1 2 3 4 5
| Iteration 1 :
somme : 100
Iteration 2 :
somme : 16
[...] |
Mais je voudrais que le code fonctionne quelque soit le nombre d'iterations.
J'ai bien un truc du genre :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| awk '
function getvalue (ligne, pattern) {
# ...
return la_valeur_qui_m'interesse_sur_la_ligne ## Ce qui est apres le =
}
BEGIN {
## Initialisations
}
END {
## Trucs de fin
}
/INFO/ {
nb_fois=$3;
}
/pattern/ {
ma_valeur = getvalue ($0, "pattern");
somme += ma_valeur;
}
/end_iteration/ {
## Affichage de la valeur
somme = 0
}
' |
Mais je ne vois pas comment le repeter nb_fois... Des idees ?