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 : 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
[...]
Et ce que je veux recuperer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : 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
  }
'
Mais je ne vois pas comment le repeter nb_fois... Des idees ?