Lazygeek Lazygeek
Title

grep: commande de base qui renvoie toutes les lignes contenant la chaine recherchée

  • grep: Globally Regular Expression Print

grep 'maChaine' fichier.txt

Renvoie toute les lignes de fichier.txt qui contiennent maChaine

Attention: grep est case sensitive par défaut.

Options de recherche

Syntaxe Comportement
^maChaine la ligne doit COMMENCER par “maChaine”
maChaine$ la ligne doit se TERMINER par “maChaine”
chaine1\|chaine2 la ligne doit contenir “chaine1” OU “chaine2” –> Attention: nécessite l’option -E de grep
gr[io]s les caractères i OU o sont autorisés au milieu de la chaine. Exemple: “gris” et “gros” seront renvoyés mais pas “gras”
gr[a-i]s les caractères de ‘a’ à ‘i’ sont autorisés
gr[a-iu-z]s les caractères de ‘a’ à ‘i’ ET de ‘u’ à ‘z’ sont autorisés
gr[^aeu]s les caractères ‘a’, ‘e’ et ‘u’ NE SONT PAS autorisés au milieu de la chaine
e? le caractère avant le ‘?’ est facultatif (0 ou 1 occurence du caractère). Exemple: ‘chiens?’ renvoit “chien” et “chiens”
e+ le caractère avant le ‘+’ peut apparaitre 1 ou plusieurs fois (mais pas 0). Exemple: ‘Yahoo+’ renvoit “Yahoo”, “Yahooo”, “Yahoooo” etc.
e* le caractère avant le ‘’ est facultatif, il peut apparaitre 0 ou *n fois.
(er)? le symbole ‘?’, ‘+’ ou ‘*’ s’applique aux lettres entre paranthèses
[ae]? le symbole ‘?’, ‘+’ ou ‘*’ s’applique au []
e{3} le caractère ‘e’ doit être présent 3 fois de suite exactement
e{3,5} le caractère ‘e’ doit être présent de 3 à 5 fois
e{3,} le caractère ‘e’ doit être présent 3 fois ou plus
\ Caractère d’échappement: permet de rechercher un caractère spécial en tant que caractère et non en tant qu’option de recherche. Attention: pas besoin de caractère d’échappement au sein d’une classe [] sauf pour #, ] et -

Classes Spéciales (ne fonctionne pas avec ttes les commandes)

Classe Equivalent Description
\d [0-9] indique un chiffre
\D [^0-9] indique que ce n’est PAS un chiffre
\w [a-zA-Z0-9_] indique un caractère alphanumérique ou ‘_’
\W [^a-zA-Z0-9_] indique que ce n’est PAS un caractère alphanumérique ni ‘_’
\s   indique un espace blanc
\S   indique que ce n’est PAS un espace blanc
  . indique n’importe quel caractère

Options de GREP

  • grep -i : ignore la casse
  • grep -E : nécessaire pour les regex étendues (notamment le ‘OU’)