• [^] # Re: grep

    Posté par (site web personnel) . En réponse au message gestion de log. É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.