Extraire certaines ligne d'un txt en shell
Résolu
nbonnet
Messages postés
478
Date d'inscription
Statut
Membre
Dernière intervention
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
JE voudrais pouvoir extraire d'un fichier log les log concernant le jour d'exécution de mon script. Je precise que toutes les lignes de mon fichier de log commence par la date sous la forme jjj mmm ddd.
Je n'arrive pas a trouver par quel moyen je peux attaquer ce problème. Je veux analyser les ligne jusqu'à ce que je trouve la date du jour. puis une fois cette ligne trouvée je veux extraire la fin du fichier et copier dans un autre fichier.
pouvez vous m'aider.
JE voudrais pouvoir extraire d'un fichier log les log concernant le jour d'exécution de mon script. Je precise que toutes les lignes de mon fichier de log commence par la date sous la forme jjj mmm ddd.
Je n'arrive pas a trouver par quel moyen je peux attaquer ce problème. Je veux analyser les ligne jusqu'à ce que je trouve la date du jour. puis une fois cette ligne trouvée je veux extraire la fin du fichier et copier dans un autre fichier.
pouvez vous m'aider.
A voir également:
- Unix extraire des lignes d'un fichier
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Extraire une video youtube - Guide
12 réponses
euh merci je suppose que cela me permet de lire la date de la première ligne d'après ce que je comprend?
Ça te permet (en théorie) d'extraire effectivement toutes les lignes commençant (^) par le motif (jjj mmm ddd) supposé être ta date de référence et ce jusqu'à la fin ($) du fichier...
À adapter selon tes besoins.
À adapter selon tes besoins.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
oki cela fonctionne comme je veux. mais lorsque je le fait dans mon script en voulant utiliser la date du pc via la commande date :
sed -n '/^date \'+%a %b %d\'/,$ p' radius.log>>rad.log
voici la réponse.
./bago.sh: line 1: unexpected EOF while looking for matching `''
./bago.sh: line 2: syntax error: unexpected end of file
Si je comprend bien il y a un souci sur le EOF qui n'est pas marqué correctement. mais je vois pas comment.
quand je fait cette commande
sed -n '/^Mer jan 27/,$ p' radius.log>>rad.log
cela fonctionne sans problème.
sed -n '/^date \'+%a %b %d\'/,$ p' radius.log>>rad.log
voici la réponse.
./bago.sh: line 1: unexpected EOF while looking for matching `''
./bago.sh: line 2: syntax error: unexpected end of file
Si je comprend bien il y a un souci sur le EOF qui n'est pas marqué correctement. mais je vois pas comment.
quand je fait cette commande
sed -n '/^Mer jan 27/,$ p' radius.log>>rad.log
cela fonctionne sans problème.
Grand merci ca marche mais par contre quand ej le test sur mon serveur j'ai un souci sur la date. Je sais que cela n'a plus de rapport avec le debut du post mais peux tu m'aider.
Mon fichier de log sur le serveur à les dates en anglais (Wed Jan 27) et la commande date me la donne en français (Mer Jan 27) je trouve pas comment la passer en anglais. Il existe peut être une autre commande pour travailler sur la date.
Merci pour ton aide.
Mon fichier de log sur le serveur à les dates en anglais (Wed Jan 27) et la commande date me la donne en français (Mer Jan 27) je trouve pas comment la passer en anglais. Il existe peut être une autre commande pour travailler sur la date.
Merci pour ton aide.
DATE=$(LC_TIME=en date '+%a %b %d')
;-))
Ca marche nickel merci bien.
Puis je exagérer. Je viens d'éplucher pas mal de lien sur sed mais je trouve pas la commande qu'il me faut.
Je souhaite supprimer certaines lignes d'un des fichier temporaire que j'utilise. Je m'explique les "bonnes lignes" commencent toutes par [el.... et malheureusement je retrouve des lignes qui ne correspondent pas. Comment les supprimer du fichier pour éviter de polluer mes calculs.
Merci d'avance.
-
---------------------------------------------------------------------
La vie est-elle trop courte pour rester derrière son écran?
Puis je exagérer. Je viens d'éplucher pas mal de lien sur sed mais je trouve pas la commande qu'il me faut.
Je souhaite supprimer certaines lignes d'un des fichier temporaire que j'utilise. Je m'explique les "bonnes lignes" commencent toutes par [el.... et malheureusement je retrouve des lignes qui ne correspondent pas. Comment les supprimer du fichier pour éviter de polluer mes calculs.
Merci d'avance.
-
---------------------------------------------------------------------
La vie est-elle trop courte pour rester derrière son écran?
MERCIIIIII franchement grand merci. Pour la faq je suis peut etre passé a coté de l'option je sur le script depuis 8h30 donc je vois plus grand chose.
Merci a toi Jipicy
Merci a toi Jipicy
hello
pour éviter le 0 devant le jour , utiliser %-
date '+%a %b %-d'
avec le mois en chiffre:
$ date '+%a %m %d'
Wed 02 10
$ date '+%a %-m %-d'
Wed 2 10
$
pour éviter le 0 devant le jour , utiliser %-
date '+%a %b %-d'
avec le mois en chiffre:
$ date '+%a %m %d'
Wed 02 10
$ date '+%a %-m %-d'
Wed 2 10
$