grep (Global Regular Expression Print) ist ein mächtiges Kommandozeilenwerkzeug zum Durchsuchen von Text nach Mustern. Es wird verwendet, um Dateien oder Ausgaben nach bestimmten Zeichenketten oder regulären Ausdrücken zu filtern und ist unverzichtbar für Log-Analyse, Fehlersuche und Textverarbeitung.
grep [OPTIONEN] MUSTER [DATEI...]
# In einer Datei suchen grep "Suchbegriff" datei.txt # In mehreren Dateien suchen grep "error" *.log # Rekursiv in Verzeichnissen suchen grep -r "TODO" /pfad/zum/verzeichnis/
grep -i "fehler" system.log
grep -l "pattern" *.txt
grep -n "function" script.sh
grep -v "DEBUG" application.log
grep -c "ERROR" logfile.txt
# 3 Zeilen vor und nach dem Treffer grep -C 3 "Exception" error.log # Nur 2 Zeilen danach grep -A 2 "pattern" datei.txt # Nur 2 Zeilen davor grep -B 2 "pattern" datei.txt
# -E für erweiterte Regex grep -E "error|warning|critical" system.log # Zeilenanfang und -ende grep "^Start" datei.txt # Beginnt mit "Start" grep "Ende$" datei.txt # Endet mit "Ende" # Beliebiges Zeichen grep "f.o" datei.txt # foo, fao, f1o, etc. # Wiederholungen grep -E "lo{2,4}" datei.txt #loo, looo, loooo
# Zahlen finden grep "[0-9]" datei.txt # Buchstaben finden grep "[a-zA-Z]" datei.txt # IP-Adressen finden grep -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" network.log
# Prozesse filtern ps aux | grep apache # Logdateien live überwachen tail -f /var/log/syslog | grep "error" # Mehrfaches Filtern cat datei.txt | grep "wichtig" | grep -v "unwichtig"
| Option | Bedeutung |
|---|---|
| -i | Groß-/Kleinschreibung ignorieren (case insensitive) |
| -r, -R | Rekursiv in Verzeichnissen suchen |
| -n | Zeilennummern anzeigen |
| -v | Invertierte Suche (Zeilen ohne Muster) |
| -l | Nur Dateinamen mit Treffern ausgeben |
| -c | Anzahl der Treffer zählen |
| -w | Nur ganze Wörter suchen |
| -x | Nur ganze Zeilen suchen |
| -A NUM | NUM Zeilen nach Treffer anzeigen (After) |
| -B NUM | NUM Zeilen vor Treffer anzeigen (Before) |
| -C NUM | NUM Zeilen vor und nach Treffer (Context) |
| -E | Erweiterte reguläre Ausdrücke verwenden |
| –color | Treffer farbig hervorheben |
# Alle ERROR-Meldungen der letzten Stunde grep "ERROR" /var/log/syslog | tail -100 # Fehlgeschlagene SSH-Login-Versuche grep "Failed password" /var/log/auth.log # Alle einzigartigen IP-Adressen in Access-Log grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" access.log | sort -u
# Alle nicht-kommentierten Zeilen grep -v "^#" /etc/ssh/sshd_config | grep -v "^$" # Bestimmte Einstellung finden grep -r "PermitRootLogin" /etc/ssh/
# Alle TODO-Kommentare finden grep -rn "TODO" /pfad/zum/projekt/ # Funktionsdefinitionen finden grep -E "^function |^def " *.py
–color=auto erleichtert das Lesenegrep (veraltet, nutze grep -E), fgrep (veraltet, nutze grep -F)ripgrep (rg) als moderne, schnellere Alternative-a um Binärdateien als Text zu behandeln oder -I um sie zu überspringen-w für ganze Wörter oder präzisere Regex-Muster-i oder escape Sonderzeichen