|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : août 2011 Messages : 30 ![]() |
Bonjour,
j'aimerai exploiter les logs d'un logiciel sous linux dans un but statistique. Le logiciel écrit des logs tous les jours dans le même fichier. Le programme commence à écrire les logs à 23H et peut terminer d'écrire vers 02H. A chaque début d'écriture de log le logiciel commence par écrire start et termine en écrivant end. Exemple de log : A 2011/07/29 23:00:00 Start A 2011/07/29 23:30:10 champ1 champ2 champ3 A 2011/07/29 23:45:26 champ1 champ2 champ3 A 2011/07/30 00:18:33 champ1 champ2 champ3 A 2011/07/30 01:26:28 champ1 champ2 champ3 A 2011/07/30 01:45:54 End J'aimerai que mon script récupère la valeur des champ3 pour la dernière session donc ici entre le 29/07 et 30/07 J'ai donc pour le moment ça : cat fichier.log | grep 'champ1' | awk '{print $6}' mais la je récupère tous les champ3 de tous les jours. Pouvez-vous m'indiquer comment faire pour récupérer la valeurs des champs 3 de la dernière session ? Par avance merci |
|
|
10
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 070 ![]() |
Bonjour,
tac tac, et voilà ! Code :
awk '{ if ($NF == "End") next; else if ($NF == "Start") exit; else print $NF }' <(tac fichier.in) | tac |
|
|
10
|
|
|
#3 | ||
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 534 ![]() |
ou pour éviter les pipes avec sed :
Code :
entre Start et End remplacer toute ligne par son dernier mot, puis épurer la ligne contenant start et la ligne contenant end et bien sur on peut faire par date ça marche aussi si le fichier contien plusieurs dates Code :
sed "/A 2011.*29.*Start/,/A 2011.*30.*End/ s/.*\( .*$\)/\1/;1d;/End/d" t
|
||
|
|
00
|
|
|
#4 | ||
|
Membre éclairé
![]() Inscription : février 2011 Messages : 83 ![]() |
Code :
![]() Merci m'sieur.
__________________
Neon Suite by FRUiT (kde4.6) http://tinyurl.com/yzm7cee "Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley) clean |
||
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : août 2011 Messages : 30 ![]() |
Bonjour,
Merci pour vos réponse, Je viens de tester la solution ci-dessous, la solution me convient presque mais j'aurais dû préciser que derrière champ3 il y a encore d'autres champs. La ligne ci-dessous me renvoie donc le dernier champ de chaque ligne mais de toutes les sessions. Est-ce possible d'avoir le champ3 de la dernière session ? Par avance merci |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com