Récupération de x fois 4 lignes dans un fichier log - Shell/Batch - Programmation
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).
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
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)
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 ----------*".
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
Marsh Posté le 17-06-2005 à 10:14:09
serimal a écrit : Bonjour |
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.
Marsh Posté le 17-06-2005 à 10:16:56
L'utilitaire "tail" est fait pour toi
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.
Marsh Posté le 17-06-2005 à 11:09:51
Elmoricq a écrit : man tail
|
Quand je regarde le man, il me dit tail <fichiersrc> <nb de ligne>
et quand je tape ta ligne de commande, ca passe pas.
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 ?
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. |
non ca me dit
"option inconnue -55"
Voulez-vous voir les options?
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.
Marsh Posté le 17-06-2005 à 11:56:04
ironhead a écrit : non ca me dit |
et j'ai bien tous les droits sur mes fichiers.
si le fichier destination n'existe pas , il me le cree.
Marsh Posté le 17-06-2005 à 14:07:26
piouPiouM a écrit :
|
desole mais je suis sous windows
Marsh Posté le 17-06-2005 à 14:12:49
piouPiouM a écrit : |
Oui, ça dépend des distribs
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 ma question est : par "ça passe pas", qu'est-ce que tu entends exactement ?
(en utilisant cette syntaxe : tail fichiersrc.txt 55 > fichierdest.txt )
Marsh Posté le 17-06-2005 à 14:17:11
Elmoricq a écrit : Oui, ça dépend des distribs
|
ca me dit
"option inconnue -55"
Voulez-vous voir les options?
Marsh Posté le 17-06-2005 à 14:18:14
Elmoricq a écrit : Oui, ça dépend des distribs
|
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
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.
Marsh Posté le 17-06-2005 à 14:21:26
ironhead a écrit : oups desole j'ai pas repondu a la bonne question. |
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" ?
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ù ?
Marsh Posté le 17-06-2005 à 15:03:36
piouPiouM a écrit : Est ce celui-ci ? |
non c'est celui la
http://www.123-fr.com/123telecharg [...] L-2705.php
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.
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>.
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