Linux, tout sur la commande GREP

GREP, peut-être avez-vous déjà vu cette commande sur plusieurs forums, elle est incontournable à tel point que nous l’utilisons sans savoir ce qu’elle fait et surtout quelle est sa véritable puissance. Voici une petite présentation.Nous allons voir ici ce qu’est la commande GREP et ce qu’elle fait, nous allons utiliser les expressions régulières (enfin seulement certains caractères comparé à au regex sur python, php, mais si vous ne voyez pas de quoi je parle, n’en tenait pas compte).

GREP, mais à quoi cela sert ?

GREP permet de rechercher un contenu (selon un modèle) dans un ou des dossiers, des fichiers …

Tout de même, GREP signifie « Global Regular Expression Print »

Son rôle s’arrête là mais attention, elle le fait de manière énorme. Nous allons pouvoir utiliser un modèle composé soit de mot complet ou d’expression régulière (je donnerai quelques exemples)

La syntaxe de GREP

En prenant dans la doc disponible sur ubuntu (man grep), vous obtenez cela :

grep [OPTIONS] PATTERN [FILE…]

Les options de GREP

Nous allons décrire rapidement les options disponibles (les plus utiulisés):

  • -c, cette option va permettre d’afficher le nombre d’occurrences trouvées plutôt que les occurrences.
  • -i, permet de rends la commande insensible à la casse.
  • -l, n’affiche que le nom du fichier où l’occurrence a été trouvée.
  • -n, affiche le numéro de la ligne où l’occurrence a été trouvé en plus de d’afficher l’occurrence.
  • -v, affiche les lignes dans lesquelles l’occurrence n’a pas été trouvée.
  • -e, permet de dire que ce qui suit est le schéma à rechercher.
  • –color, voici une option visuelle, change la couleur de l’occurrence qui correspond au schéma.

Les codes de retour

Il existe trois codes de retour :

  • 0 pour signifier qu’au moins une occurrence a été trouvée
  • 1 pour indiquer qu’aucune occurrence est présente, la syntaxe de la commande est correcte
  • 2 pour indiquer qu’il y a une erreur soit sur la syntaxe, les fichiers cibles …

Les caractères utilisables

Voici une liste des différents caractères utilisables dans les schémas de recherche :

  • ?, l’élément précédent est facultatif mais peut être présent une fois maximum
  • *, l’élément précédent peut apparaître 0 ou plusieurs fois
  • +, l’élément précédent peut apparaître 1 fois ou plusieurs fois
  • {n}, l’élément précédent doit apparaître n fois (n est un entier)
  • {n,}, l’élément précédent doit apparaître au moins n fois
  • {,m}, l’élément précédent est facultatif mais peut apparaître au moins m fois
  • {n,m}, l’élément précédent doit apparaître entre n et m fois
  • ^ est le symbole pour indiquer par quoi doit commencer la ligne
  • $ est le symbole pour indiquer par quoi doit se finir la ligne
  • . indique la présence de n’importe quelle caractère
  • \ est le caractère d’échappement
  • [des_caractères] permet d’indiquer une liste de caractère attendu
  • [^caractère_interdit] lorsque la plage est précédée d’un ^, tous les caractères sont exclus de la recherche
  • Il y a bien sur encore plein d’autres possibilités

Exemple d’utilisation de GREP

Créez un fichier test.sh et y insérez :

echo "Recherche du caractère 'c' dans \"c'est un test\", expression : 'c'"
echo "c'est un test" | grep -e "c" --color
echo "Recherche de 'test' seulement en fin de ligne, expression : 'test$'"
echo "c'est un test mais je recherche seulement le dernier test" | grep --color -e "test$"
echo "Recherche de toutes les voyelles, expression : '[aeuioAEUIO]'"
echo "Voici toutes les voyelles" | grep -e '[aeuioAEUIO]' --color

Vous obtiendrez un petit exemple comme celui-là :

Linux, utilisation de la commande shell - bash grep
Linux, utilisation de la commande shell – bash grep

Conclusion

Voici une petite présentation simple de ce qu’il est possible de faire sachant que je n’ai vu qu’une petite partie des possibilités.

Laisser un commentaire