Grep en couleur

Publié le 09/12/2008

Grep est l’un des outils les plus utilisés sur Unix/Linux, il permet de trouver une chaîne de caractère ou un motif (un patron) dans un texte, une série de fichiers, une sortie de commande… bref il rend des services immenses.

Un tout petit bémol, le motif trouvé est souvent noyé dans la ou les lignes trouvées. Il serait plus agréable de voir en couleur la chaîne cherchée dans la chaîne trouvée. Et bien Grep peut le faire. Nous avons deux solutions.

La première consiste à donner l’option –color à grep, la seconde consiste à rendre cette option implicite, par exemple dans le fichier ~/.bashrc:

#Cette opération est à faire qu'une fois, elle ajoute 
#l'option dans votre bash_profile
echo 'export GREP_OPTIONS="--color"' >> ~/.bash_profile

#puis on réinitialise bashrc dans la console en cours, cette opération n'est à faire que si vous n'avez pas encore redémarré votre session
. .bash_profile

Maintenant la sortie Grep est un peu plus claire, on voit en rouge notre chaîne recherchée dans les lignes trouvée. Par exemple:

grep -ir htmlheader public_html/copix_3.0.x/utils/copix/

me retourne des lignes de ce genre:

public_html/copix_3.0.x/utils/copix/field/fields/CopixFieldAjaxListSubmit.class.php: CopixHTMLHeader::addJSDOMReadyCode(”

Je vois donc bien où se trouve mon “htmlheader” demandé. C’est d’autant plus sympa avec des tests en regexp (expression régulière):

grep -Eir "(metal3d|steevan)" public_html/copix_3.0.x/utils/

recherche “metal3d ou steevan” dans le répertoire utils de copix, l’option “-E” me permet de faire des expressions régulières de type “ERE”, avec la coloration on y voit un peu plus clair:

public_html/copix_3.0.x/utils/copix/smarty_plugins/.svn/text-base/function.ajax_submitform.php.svn-base: * @author Steevan BARBOYON public_html/copix_3.0.x/utils/copix/smarty_plugins/.svn/text-base/modifier.html_substr.php.svn-base: * Modification to add this string into last tag: Patrice Ferlet <metal3d@copix.org>

Bref, j’espère que cela peut vous être utile :)

comments powered by Disqus