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 :
Et ce que je veux recuperer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 [...]
Mais je voudrais que le code fonctionne quelque soit le nombre d'iterations.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Iteration 1 : somme : 100 Iteration 2 : somme : 16 [...]
J'ai bien un truc du genre :
Mais je ne vois pas comment le repeter nb_fois... Des idees ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 } '
Partager