Start·Terminal-Befehle

grep

Textverarbeitung

Aufruf

grep -rn '[pattern]' [path]

Filtert die Zeilen, die zu einem Muster passen; standardmäßig gilt Basic Regex, daher brauchen + ? | und () ein -E oder einen Backslash.

Häufige Optionen

OptionBedeutung
-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

Beispiele

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.

Sie sind fürs Zusammenstecken mit Pipes gebaut. Drei verkettete Befehle sind meist kürzer als einer, der alles macht.

So liest man das

  • Eckige Klammern [ ] markieren einen Teil, den man weglassen kann.
  • Drei Punkte … heißen: mehrere sind erlaubt.
  • Optionen achten auf Groß- und Kleinschreibung — bei manchen Befehlen sind -r und -R verschieden.

Häufige Fragen

Q. Was macht grep?

Filtert die Zeilen, die zu einem Muster passen; standardmäßig gilt Basic Regex, daher brauchen + ? | und () ein -E oder einen Backslash.

Q. Wie gibt man ihn ein?

grep -rn '[pattern]' [path] — eckige Klammern markieren, was wegfallen darf.

Q. Wie viele Optionen lohnen sich?

Hier stehen 8; die vollständige Liste steht in man grep. Der Befehl gehört zu Textverarbeitung.

Verwandte Befehle

man-Seite: man grep