Unix sed: tri sélectif

mabd -  
mabd Messages postés 2 Statut Membre -
bonjour

avec sed sous unix:
dans une ligne, je souhaite récupérer 3 mots clés et le chiffre qui lui est respectivement associé:

ligne de référence:

<h2 > <FONT color="green"> ffffff PRODUCTION :18/05/2007 - 21/05/2007 </font></h2><TABLE><TR><td bgcolor="#C0C0C0">mot cle 1 </td><td>44</td><td bgcolor="#C0C0C0">mot cle 2 </td><td>29</td><td bgcolor="#FFFF00">mot cle 3 </td><td>199</td></TABLE></TR>

#############
résultat attendu :

##############
mot cle 1 : 44</gras>
mot cle 2 : 29
mot cle 3: 199
#############

merci

2 réponses

jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

Peut être y-a-t-il plus optimisé (à répéter en fonction du nombre de mot-clé) :
sed 's|.*\(mot cle 3 \)[td<>/]*\([0-9][0-9]*\).*|\1: \2|' fichier
;-))
0
mabd Messages postés 2 Statut Membre
 
pas mal c'est tout à fait cela
merci
comment traiter:
1/ le cas où le mot clé n'existe pas (à ce moment-là il faut un retour égal à "0")
2/ dans le cas où on doit traiter ce fichier chaque jour pour faire des stat à la fin du mois, j'envisage deux solutions:
a) envoi des chiffres dans un fichier de la manière suivante:
mot clé 1 ; mot clé 2; ....
5 ; 8 ; ...
2 ; 12 ; ...
5; 5 ; ...
avec une ligne par jour

b) faire l'addition au fur et à mesure
dans l'exemple ci-dessus on aurait alors à l'issu du troisième jour:
mot clé 1 ; mot clé2 ...
12 ; 25
(à savoir 5+2+5); ( à savoir 8+12+5)

qu'en pensez-vous?

je précise que le but final est: à partir d'un fichier de log (ou de compte rendu de traitement pour être précis) de récupérer le nombre de traitements qui se sont biens passés et ceux qui ont eu un souci ... (4 ou 5 types définis clairement par mot clé).
le log sort tous les jours et les statistiques sont elles mensuelles

merci
0