Recherche colorée dans les logs avec perl

Voici un petit one-liner assez sympathique, dont on m'avait parlé dans la semaine et sur lequel je suis tombé par hasard en cherchant autre chose. Le principe est d'afficher dans une autre couleur un texte donné dans une recherche, comme par exemple une erreur précise dans un fichier de logs. Sur une machine j'ai des problèmes avec cron, je l'utilise donc de la manière suivante :

root@lolcathost:~# tail -f /var/log/syslog | perl -pe 's/cron/\\e[1;31m$&\\e[0m/ig'

On remarque une différence avec le lien indiqué plus haut, j'ai mis "/ig" à la fin au lieu de "/g". Pourquoi? J'avais besoin de faire la recherche sans tenir compte de la casse, et j'ai trouvé l'option suite à une rapide recherche. Je devrais vraiment me mettre à perl, ça me semble vraiment efficace et pratique :-)

Pour ceux qui pensent que j'ai fait une faute de frappe dans la recopie du prompt, je leur recommande d'aller voir ici.

Commentaires

Le 25/04/2010 10:46 par karles

Plus simple encore "grep --color" met en couleur la chaine recherché. Pour toute la ligne le one-liner en perl reste le plus efficace.

Karles