Bonjour à tous,
Voici mon problème :
Je cherche à extraire les lignes d'un fichier de log par date du jour (ex que les lignes du "27").
Voici comment ce présente le fichier de log :
Nov 27 08:57:25 serveurftp pure-ftpd: (test@serveur) [INFO] New connection from test.serveur
Merci pour vos réponse.
Cordialement
# grep
Posté par Frédéric Perrin (site web personnel) . Évalué à 1.
grep '^Nov 27' < fichier.log
[^] # Re: grep
Posté par mangosta31 . Évalué à 1.
du type d=date +'%b %d'
[^] # Re: grep
Posté par François Trahay (site web personnel) . Évalué à 2.
grep "^`date +'%b %d'`" < plop.log
[^] # Re: grep
Posté par mangosta31 . Évalué à 1.
[^] # Re: grep
Posté par Frédéric Perrin (site web personnel) . Évalué à 5.
Hey, est-ce que tu as compris la commande de François ?
date +"%b %d" renvoie la date sous le format donné (voir man strftime pour les %x possibles). `data +"%b %d"` est remplacé par la date avant l'appel à grep, qui devient donc
grep "^mmm. JJ" < fichier.log
.Avec une locale française, la date renvoyée est "nov. 28" pour aujourd'hui parce que c'est l'abréviation de novembre en Français. Les logs contiennent Nov parce que c'est l'abréviation de November en Anglais. Il faut donc donner à date la locale correcte.
Si tu n'as qu'une seule commande dans ce cas, je dirais quelque chose du genre :
grep "^$(env LANG=C date +'%b %d')" < fichier.log
Si tu as plusieurs commandes dans ce style, un petit
export LANG=C
au début du script sera probablement plus simple.[^] # Re: grep
Posté par mangosta31 . Évalué à 1.
Ca marche
Merci pour l'explication.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.