next up previous contents index
suivant: Utilisation de « egrep » monter: Utilisation avancée de « grep », précédent: Introduction - Rappels   Table des matières   Index

Utilisation de « grep »

« grep » accepte un ensemble restreint d'expressions régulières, en particulier, il n'accepte pas les symboles suivants :

+  ?
|  ( )

« grep » renvoie au shell un statut sur le résultat de sa recherche. Les différentes valeurs possibles sont :

 Code   Description  
 0   une occurrence au moins a été trouvée.  
 1   aucune occurrence n'a été trouvée.  
 2   il y a une erreur de syntaxe ou bien un des fichiers en entrée n'est pas accessible  

Remarque 13..2 :


Un statut « 0 » est équivalent à « Vrai ».
Un statut non nul équivaut à « Faux ».

On peut donc utiliser ce code dans les scripts lors de tests. Par exemple, il est possible d'afficher un message lorsque la recherche a été fructueuse ou non. Pour cela, la sortie standard de la commande « grep » sera redirigée dans un fichier spécial et seul le statut d'exécution sera utilisé.

Exemple 13..2 :


if grep expression fichier >/dev/null 2>&1; then
    echo "Gagné"
else
    echo "Perdu"
fi
Dans cet exemple, la commande « grep » effectue sa recherche dans « fichier ». Tout message d'erreur ou résultat d'affichage n'apparaîtra pas à l'écran. Si la recherche donne un résultat (« $? = 0 »), le message « Gagné » sera affiché. Si la recherche est infructueuse ou s'il se produit une erreur, « Perdu » sera affiché.

Exemple 13..3 :


grep '^[0-9][0-9]' fichier
Dans cet exemple, on fait appel à la notion d'expression régulière (cf. [*]). L'expression « ^[0-9][0-9] » se décompose de la façon suivante :

^  Début de ligne.
[0-9]  Caractère quelconque compris entre les codes ASCII de 0 et de 9. Ces caractères sont : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Par conséquent « [0-9] » représente un chiffre quelconque. Celui-ci doit apparaître une seule fois juste après le début de ligne
[0-9]  Le second « [0-9] » représente lui-aussi un chiffre quelconque. Celui-ci doit apparaître une seule fois juste après le précédent chiffre.
Cette expression régulière permet de décrire toute chaine de caractères commencant par deux chiffres quelconque. La commande « grep » va donc extraire de « fichier », toutes les lignes commencant par deux chiffres.


next up previous contents index
suivant: Utilisation de « egrep » monter: Utilisation avancée de « grep », précédent: Introduction - Rappels   Table des matières   Index
baudry@esme.fr