Script shell problème avec date

Script shell problème avec date - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 17-08-2011 à 21:31:27    

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

Reply

Marsh Posté le 17-08-2011 à 21:31:27   

Reply

Marsh Posté le 17-08-2011 à 22:20:15    

Code :
  1. grep -i -B 1 end fichier.log | grep -vi end | awk '{ print $6 }'
 

Récupère la ligne avec "end" et celle qui précède | ne prend pas la ligne avec "end" | awk...

 

?


Message édité par art_dupond le 17-08-2011 à 22:21:19

---------------
oui oui
Reply

Marsh Posté le 18-08-2011 à 01:14:59    

Code :
  1. awk '/'$(date "+%Y\/%m\/%d" )' .*Start/,/End/{if ($6) print $6}' <FICHIER>


 
On commence à matcher sur la date du jour + Start et on arrete sur la ligne contenant End suivante et on affiche la 6° colonne si elle existe
 
^^

Reply

Marsh Posté le 18-08-2011 à 18:08:07    

Bonjour et merci pour vos réponse,
 
je viens de tester la solution ci-dessous :
 

Citation :

awk '/'$(date "+%Y\/%m\/%d" )' .*Start/,/End/{if ($6) print $6}' monfichier.log


 
mais lorsque je valide rien ne se passe !  
 
Avez-vous une idée ?
 

Reply

Marsh Posté le 24-08-2011 à 18:08:56    

Code :
  1. $ awk -V
  2. GNU Awk 4.0.0
  3. $ uname -a
  4. Linux FreAkyLab 2.6.39-ARCH #1 SMP PREEMPT Sat Jul 9 14:57:41 CEST 2011 x86_64 Intel(R) Core(TM)2 Quad CPU Q9650 @ 3.00GHz GenuineIntel GNU/Linux
  5. $ $SHELL -version
  6. GNU bash, version 4.2.10(2)-release (x86_64-unknown-linux-gnu)


 
Et toi ?
 
Est-ce qu'il y a bien comme dans l'exemple les chaines Start et End et une 6° colonne ?


Message édité par sputnick le 24-08-2011 à 20:21:42
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed