Grep en couleur mais

grep dispose d’une option bien sympathique pour colorier la chaîne capturée par un motif:

Va retourner:
$ Maisouestlemotdebiandanstoutceci

La valeur de la couleur peut se changer dans la variable d’environnement GREP_COLOR. Faire, par exemple:

Un fois la couleur choisie, on peut mettre cet export dans .bashrc

Sans doute rien de très nouveau pour beaucoup d’entre-vous mais… cette option a un comportement inattendu quand on utilise l’option -i (insensible à la casse). Il y a bien concordance sur l’ensemble de la ligne mais la colorisation se fera de manière incohérente. Voyez:
[ul]
[li]$ echo “Hello Linux” | grep --color=auto l
Hello Linux
[/li]
[li]$ echo “Hello Linux” | grep -i --color=auto l
Hello Linux
[/li]
[li]$ echo “Hello Linux” | grep --color=auto L
Hello Linux
[/li]
[li]$ echo “Hello Linux” | grep -i --color=auto L
Hello Linux :question:[/li][/ul]

Je n’ai pas trouvé comment le faire fonctionner de manière cohérente.

Une valeur de configuration? Une option?

(grep: Version : 2.5.1.ds1-4)

Salut,

En utilisant la 2.51 (pure) je n’ai pas cette anomalie :smiley:

Merci d’avoir essayé sur ta machine.

J’ai fait l’essai de $ echo “Hello Linux” | grep -i --color=auto L sur 3 machines différentes (toutes de la même version grep, il est vrai) et j’ai le même problème. Pas de colorisation des “l” ou “L” alors qu’un $ echo “Hello Linux” | grep -i --color=auto l me les colorie tous.

Ce n’est pas que ça va m’empêcher de dormir mais je n’aime pas trop les comportements incohérents.

Bon, faut pas aller chercher plus loin. C’est apparemment un bug connu de la version 2.5.1.
savannah.gnu.org/bugs/?func=deta … 5#attached

Solution pour contourner le bug:
echo “Hello Linux” | grep --color -i -F “L”

L’option -F n’est pas nécessaire mais semble contourner le problème.

@ggoodluck47: ce qui m’intrigue c’est que tu n’aies pas le même problème sur ta version. Paquet Debian?

Bonsoir,

Tout ce que je peux dire c’est que -V me dit 2.51 sans aucun suffixe :frowning:

Bonjour,

Que te retourne
$ dpkg -s grep | grep ‘^Version’

Le bug semble être résolu dans la version 2.5.1.ds2-2

Salut,

Je confirme 2.5.1.ds2-2 alors que V est nettement moins bavard :smiley:

Sympa cette option, je connaissais pas. On peut changer la couleur en fonction du mot clef?
Genre afficher FALSE en rouge, TRUE en bleu?

J’utilise ca pour coloriser plein de trucs:
http://packages.debian.org/unstable/utils/ccze

J’ai ca dans mon inittab:
C:12345:wait:/usr/bin/tail -n30 -f /var/log/messages | /usr/bin/ccze > /dev/tty12
Ensuite Ctrl Alt F12 donne une belle sortie.