Forum Programmation.shell gestion de log

Posté par .
Tags : aucun
1
28
nov.
2010
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 (page perso) . Évalué à 1.

    Quelque chose comme : grep '^Nov 27' < fichier.log
    • [^] # Re: grep

      Posté par . Évalué à 1.

      Je sais mais "Nov 27" doit être un variable.
      du type d=date +'%b %d'
      • [^] # Re: grep

        Posté par (page perso) . Évalué à 2.

        Comme ca ?
        grep "^`date +'%b %d'`" < plop.log
        • [^] # Re: grep

          Posté par . Évalué à 1.

          Cela me donne aucun résultat.
          • [^] # Re: grep

            Posté par (page perso) . Évalué à 5.

            Est-ce que tu utilises une locale autre que C ?

            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 . Évalué à 1.

              Super!

              Ca marche
              Merci pour l'explication.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.