Récupération de x fois 4 lignes dans un fichier log

Récupération de x fois 4 lignes dans un fichier log - Shell/Batch - Programmation

Marsh Posté le 26-05-2005 à 09:56:09    

Je dois récupérer 4 lignes qui se succèdent (plusieurs fois)dans un gros fichier log. Je peux récupérer la première avec un grep, mais comment récupérer les 3 autres derrière ?
 
thanks  :hello:

Reply

Marsh Posté le 26-05-2005 à 09:56:09   

Reply

Marsh Posté le 26-05-2005 à 09:59:51    

Faudrait plus de détails, sinon j'essaierais avec egrep + le regexp qui va bien.
 
Ou alors, en utilisant l'option '-n' de grep dont on retraiterait ensuite le résultat (à coup awk par exemple).

Reply

Marsh Posté le 26-05-2005 à 10:24:38    

Merci. voici un extrait du fichier :
 
Time: Mon May 23 10:17:43 2005
 
*--- Received a close message from client-*
Host Name: dombo
Client User name: DOMBO\boservice
Process id: 3928
Deleting the client
***********************************************
 
DSAClientHandler::removeClient: Removing client
************************************************
Time: Mon May 23 10:17:43 2005
 
*----- Deleting the following client ----------*
Host Name: dombo
Client User name: DOMBO\boservice
Process id: 3928
 
Je voudrais récupérer (les 4 dernières lignes) que l'on retrouve x fois dans un gros log :
 
*----- Deleting the following client ----------*
Host Name: dombo
Client User name: DOMBO\boservice
Process id: 3928

Reply

Marsh Posté le 26-05-2005 à 10:31:45    

Quand tu dis "récupérer", à quoi penses-tu ?
 
Faut-il repérer les lignes qui se répètent et les sortir ?
 
Ou bien dois-tu rechercher les occurences de ces quatre lignes ? (si c'est ça, sont-elles connues ou s'agit-il, par exemple, toujours des 4 dernières lignes du fichier)

Reply

Marsh Posté le 26-05-2005 à 10:50:20    

je veux les repérer et les sortir dans un autres fichiers. Ce ne sont pas les 4 dernières lignes du fichier et elles commencent tjs par "*----- Deleting the following client ----------*".

Reply

Marsh Posté le 27-05-2005 à 11:30:50    

Bonjour
ca peut s'ecrire avec awk :  
on repere la chaine "*----- Deleting " , on arme un compteur pour l'affichage de 4 lignes, qu'on decremente a chaque affichage de ligne
 
awk '/^*----- Dele/{aff=4;} aff {print;aff--;}' fic_a_analyser
 

Reply

Marsh Posté le 17-06-2005 à 10:14:09    

serimal a écrit :

Bonjour
ca peut s'ecrire avec awk :  
on repere la chaine "*----- Deleting " , on arme un compteur pour l'affichage de 4 lignes, qu'on decremente a chaque affichage de ligne
 
awk '/^*----- Dele/{aff=4;} aff {print;aff--;}' fic_a_analyser


 
 
 
Bonjour j'ai un peu le meme besoin, sauf que je dois récupérer les 55 dernieres lignes d'un fichier de log, et les resortir sur un autre fichier qui n'est pas encore créé.
Pouvez vous m'aider?
 
Merci de votre aide.

Reply

Marsh Posté le 17-06-2005 à 10:16:56    

L'utilitaire "tail" est fait pour toi :)


Message édité par Elmoricq le 17-06-2005 à 10:17:00
Reply

Marsh Posté le 17-06-2005 à 10:43:28    

Elmoricq a écrit :

L'utilitaire "tail" est fait pour toi :)


 
 
je l'ai utilisé mais ca ne me sort aucune ligne.
je me mets dans le meme repertoire et je tape la commande
tail fichierscr.txt 55 >fichierdest.txt
 
 
ca me cree le nouveau fichier, mais vide.

Reply

Marsh Posté le 17-06-2005 à 10:46:51    

man tail  [:petrus75]  
 

tail -55 fichiersrc.txt > fichierdest.txt

Reply

Marsh Posté le 17-06-2005 à 10:46:51   

Reply

Marsh Posté le 17-06-2005 à 11:09:51    

Elmoricq a écrit :

man tail  [:petrus75]  
 

tail -55 fichiersrc.txt > fichierdest.txt



 
 
Quand je regarde le man, il me dit tail <fichiersrc> <nb de ligne>
 
et quand je tape ta ligne de commande, ca passe pas.

Reply

Marsh Posté le 17-06-2005 à 11:16:00    

Ah, donc c'est comme ça qu'il faut l'utiliser chez toi.
 
Quand tu dis "ça passe pas", ça te fait quoi ?
fichiersrc.txt n'est pas vide ? Tu as les droits de lecture sur le fichier, les droits d'écriture sur le répertoire ?

Reply

Marsh Posté le 17-06-2005 à 11:53:48    

Elmoricq a écrit :

Ah, donc c'est comme ça qu'il faut l'utiliser chez toi.
 
Quand tu dis "ça passe pas", ça te fait quoi ?
fichiersrc.txt n'est pas vide ? Tu as les droits de lecture sur le fichier, les droits d'écriture sur le répertoire ?


 
 
non ca me dit
"option inconnue -55"  
Voulez-vous voir les options?

Reply

Marsh Posté le 17-06-2005 à 11:55:43    

Je voulais savoir ce que ça faisait quand tu écrivais :

tail fichierscr.txt 55 >fichierdest.txt


 
Rien du tout ? Pas d'erreur ?
Fichier source non vide ? Droit d'écriture ou de lecture, etc.

Reply

Marsh Posté le 17-06-2005 à 11:56:04    

ironhead a écrit :

non ca me dit
"option inconnue -55"  
Voulez-vous voir les options?


 
 
et j'ai bien tous les droits sur mes fichiers.
si le fichier destination n'existe pas , il me le cree.

Reply

Marsh Posté le 17-06-2005 à 12:45:14    

tail -n 55 fichierscr.txt >fichierdest.txt


peut être ?
 
edit :
man tail sur FreeBSD :
-n number
             The location is number lines


Message édité par piouPiouM le 17-06-2005 à 12:46:27

---------------
o(^_^o) Gimp4you : tutoriels pour Gimp 2 | Galerie (o^_^)o
Reply

Marsh Posté le 17-06-2005 à 14:07:26    

piouPiouM a écrit :

tail -n 55 fichierscr.txt >fichierdest.txt


peut être ?
 
edit :
man tail sur FreeBSD :
-n number
             The location is number lines


 
desole mais je suis sous windows   :sweat:

Reply

Marsh Posté le 17-06-2005 à 14:12:49    

piouPiouM a écrit :


man tail sur FreeBSD :
-n number
             The location is number lines


 
 
Oui, ça dépend des distribs  :sweat:  
Sur Solaris, -n <nombre> et -<nombre> sont autorisés.
 
 
Quant à Windows, euuuh. De base, y a pas tail sous Windows. Ni man.
Donc tu as soit un truc type cygwin, soit je sais pas. Quoiqu'il en soit, si je m'en réfère à ce que tu as écris :
 

Citation :

Quand je regarde le man, il me dit tail <fichiersrc> <nb de ligne>
 
et quand je tape ta ligne de commande, ca passe pas.


 
Et ma question est : par "ça passe pas", qu'est-ce que tu entends exactement ?
(en utilisant cette syntaxe : tail fichiersrc.txt 55 > fichierdest.txt )

Reply

Marsh Posté le 17-06-2005 à 14:17:11    

Elmoricq a écrit :

Oui, ça dépend des distribs  :sweat:  
Sur Solaris, -n <nombre> et -<nombre> sont autorisés.
 
 
Quant à Windows, euuuh. De base, y a pas tail sous Windows. Ni man.
Donc tu as soit un truc type cygwin, soit je sais pas. Quoiqu'il en soit, si je m'en réfère à ce que tu as écris :
 

Citation :

Quand je regarde le man, il me dit tail <fichiersrc> <nb de ligne>
 
et quand je tape ta ligne de commande, ca passe pas.


 
Et ma question est : par "ça passe pas", qu'est-ce que tu entends exactement ?
(en utilisant cette syntaxe : tail fichiersrc.txt 55 > fichierdest.txt )


 
 
ca me dit
"option inconnue -55"  
Voulez-vous voir les options?

Reply

Marsh Posté le 17-06-2005 à 14:17:38    

Oups [:joce]
 
edit : http://malektips.com/xp_dos_0001.html


Message édité par piouPiouM le 17-06-2005 à 14:18:22

---------------
o(^_^o) Gimp4you : tutoriels pour Gimp 2 | Galerie (o^_^)o
Reply

Marsh Posté le 17-06-2005 à 14:18:14    

Elmoricq a écrit :

Oui, ça dépend des distribs  :sweat:  
Sur Solaris, -n <nombre> et -<nombre> sont autorisés.
 
 
Quant à Windows, euuuh. De base, y a pas tail sous Windows. Ni man.
Donc tu as soit un truc type cygwin, soit je sais pas. Quoiqu'il en soit, si je m'en réfère à ce que tu as écris :
 

Citation :

Quand je regarde le man, il me dit tail <fichiersrc> <nb de ligne>
 
et quand je tape ta ligne de commande, ca passe pas.


 
Et ma question est : par "ça passe pas", qu'est-ce que tu entends exactement ?
(en utilisant cette syntaxe : tail fichiersrc.txt 55 > fichierdest.txt )


 
 
oups desole j'ai pas repondu a la bonne question.
en fait quand le fichier destination n'existe pas, il en crée un, mais vide, et quand il existe deja, il reste vide

Reply

Marsh Posté le 17-06-2005 à 14:20:53    

non il y a un logiciel que j'ai téléchargé et qui s'appelle Tail.

Reply

Marsh Posté le 17-06-2005 à 14:21:26    

ironhead a écrit :

oups desole j'ai pas repondu a la bonne question.
en fait quand le fichier destination n'existe pas, il en crée un, mais vide, et quand il existe deja, il reste vide


 
Il y a quelque chose dans "fichierscr.txt" ?
Tu as les droits en lecture ?  
Tu es dans le bon répertoire ?
 
Tu ne te serais pas trompé, après lecture attentive de tes réponses, entre "fichierscr.txt" et "fichiersrc.txt" ?

Reply

Marsh Posté le 17-06-2005 à 14:27:07    

ironhead a écrit :

non il y a un logiciel que j'ai téléchargé et qui s'appelle Tail.


 
Tu l'as récupéré où ?

Reply

Marsh Posté le 17-06-2005 à 14:27:49    


Est ce celui-ci ?


---------------
o(^_^o) Gimp4you : tutoriels pour Gimp 2 | Galerie (o^_^)o
Reply

Marsh Posté le 17-06-2005 à 15:03:36    

Reply

Marsh Posté le 17-06-2005 à 15:05:20    

Citation :

Exemple : TAIL *.htm 10 > zz.tmp


 
Donc il s'agit bien d'un problème sur ton fichier source, soit tu t'es trompé dans le nom, soit il est vide, soit tu n'as pas les droits de lecture dessus.

Reply

Marsh Posté le 17-06-2005 à 17:16:09    

Le grep de GNU a une option -A (ou --after-context) qui permet d'afficher un certain nombre de lignes apres une ligne qui match. Donc tu peux faire un truc du genre grep -A 4 "Deleting the following client" <file>.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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