Accueil·Commandes du terminal

grep

Traitement de texte

Syntaxe

grep -rn '[pattern]' [path]

Extrait les lignes correspondant à un motif ; il lit du regex basique par défaut, donc + ? | et () exigent -E ou un antislash.

Options courantes

OptionSignification
-iIgnore case
-rSearch a whole directory tree; -R also follows symlinks
-nPrint the line number of each hit
-vInvert: print the lines that do not match
-lPrint only the names of the files that matched
-wMatch whole words only
-EExtended regex, so + ? | and () work unescaped
-CPrint N lines of context around each hit

Exemples

grep -rn 'TODO' src/

Every TODO in the tree, with file and line.

grep -v '^#' nginx.conf

Drops the comment lines.

ps aux | grep '[n]ginx'

Finds nginx without matching the grep itself.

Ils sont faits pour être chaînés avec des tubes. Trois commandes reliées sont souvent plus courtes qu’une seule qui fait tout.

Comment lire

  • Les crochets [ ] marquent une partie facultative.
  • Les points de suspension … signifient qu’on peut en mettre plusieurs.
  • Les options sont sensibles à la casse : sur certaines commandes, -r et -R ne font pas la même chose.

Questions fréquentes

Q. Que fait grep ?

Extrait les lignes correspondant à un motif ; il lit du regex basique par défaut, donc + ? | et () exigent -E ou un antislash.

Q. Comment l’écrire ?

grep -rn '[pattern]' [path] — les crochets marquent ce qui est facultatif.

Q. Combien d’options valent la peine ?

Il y en a 8 ici ; la liste complète est dans man grep. Cette commande relève de Traitement de texte.

Commandes liées

page man: man grep