Rechercher : dans
Par :

Unix sed: tri sélectif

Dernière réponse le 25 mai 2007 à 11:09:31 mabd, le 24 mai 2007 à 17:15:34 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « unix sed: tri sélectif » dans :
Sed - Substitution Voir Substitution Substitution basique Simple Globale Ciblée Substitution conditionnée Simplee Avancée Bloc Avancéé Substitution basique Simple - 1ère occurrence (de chaque ligne) rencontrée uniquement sed 's/la/LA/' fichier.txt
Sed - Conversion retours chariots DOS (CRLF) / UNIX (LF) Voir Conversion format de fichier DOS UNIX / UNIX DOS Préambule Ce qu'il faut savoir Conversion DOS vers UNIX Conversion UNIX vers DOS Préambule Il existe déjà des utilitaires (dos2unix et unix2dos) qui s'acquittent très bien ce...
Sed - Introduction à SED - Part III VoirSED - The Stream EDitor - Part III Ce document est une introduction à la pratique et à l'utilisation de l'éditeur de flux "SED", qui essaie de couvrir certaines fonctionnalités assez méconnues, pour ne pas dire "quasi inconnues", qui font de "SED"...
Sed - Insertion de texte VoirInsérer du texte dans un fichier Introduction Syntaxe Ajout de texte Insérer une ligne avec "i" Ajouter une ligne avec "a" Échanger une ligne avec "c" Introduction Il est parfois utile de pouvoir insérer du texte en en-tête d'un ou...
Sed - Supprimer une ou plusieurs lignes d'un fichier VoirSupprimer une (ou plusieurs) ligne(s) d'un fichier Syntaxe sed '{[/]||[/]}d' sed '{[/][,][/]d' /.../ = délimiteurs n = le numéro de ligne chaîne = la chaîne contenue dans la...
Télécharger Revo Uninstaller VoirRevo Uninstaller est un logiciel édité par VS Revo Group permettant de faire un nettoyage en profondeur avec diverses fonctionnalités : Nettoyage, désinstallation de programmes avec suppression des clefs de registres périmées. Un mode Chasseur...
Le bus USB (Universal Serial Bus) VoirPrésentation du bus USB Le bus USB (Universal Serial Bus, en français Bus série universel) est, comme son nom l'indique, basé sur une architecture de type série. Il s'agit toutefois d'une interface entrée-sortie beaucoup plus rapide que les ports...
SQL - Tri VoirTri des résultats Il est possible en SQL d'organiser les résultats grâce à la clause ORDER BY. La clause ORDER BY est suivie des mots clés ASC ou DESC, qui précisent respectivement si le tri se fait de manière croissante (par défaut) ou...
Introduction aux systèmes UNIX VoirLe système UNIX Le système Unix est un système d'exploitation multi-utilisateurs, multi-tâches, ce qui signifie qu'il permet à un ordinateur mono ou multi-processeurs de faire exécuter simultanément plusieurs programmes par un ou plusieurs...

1

jipicy, le 24 mai 2007 à 18:07:43

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
;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

2

 mabd, le 25 mai 2007 à 11:09:31

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

Répondre à mabd