3.4 KiB
3.4 KiB
grep - Textsuche in Dateien
Der grep-Befehl durchsucht Dateien oder Textströme nach Mustern (Strings oder reguläre Ausdrücke).
Grundsyntax
grep [OPTIONEN] MUSTER [DATEI...]
Einfache Suche
grep "suchtext" datei.txt
In mehreren Dateien:
grep "suchtext" *.txt
Rekursiv in Verzeichnissen:
grep -r "suchtext" /pfad/zum/verzeichnis
Wichtige Optionen
Groß-/Kleinschreibung
grep -i "suchtext" datei.txt # case-insensitive
Zeilen mit Kontext
grep -A 3 "suchtext" datei.txt # 3 Zeilen danach
grep -B 3 "suchtext" datei.txt # 3 Zeilen davor
grep -C 3 "suchtext" datei.txt # 3 Zeilen davor und danach
Nur Dateinamen anzeigen
grep -l "suchtext" *.txt # Dateien mit Treffer
grep -L "suchtext" *.txt # Dateien ohne Treffer
Zeilennummern anzeigen
grep -n "suchtext" datei.txt
Anzahl der Treffer
grep -c "suchtext" datei.txt
Invertierte Suche (nicht enthalten)
grep -v "suchtext" datei.txt
Zeigt alle Zeilen, die den Suchtext NICHT enthalten.
Ganzes Wort
grep -w "wort" datei.txt
Findet "wort", aber nicht "worte" oder "hauptwort".
Reguläre Ausdrücke
Einfache Regex (Basic)
grep "^Start" datei.txt # Zeilen, die mit "Start" beginnen
grep "Ende$" datei.txt # Zeilen, die mit "Ende" enden
grep "^$" datei.txt # Leere Zeilen
Extended Regex
grep -E "fehler|warnung" datei.txt # fehler ODER warnung
grep -E "[0-9]{3}-[0-9]{4}" datei.txt # Telefonnummern
grep -E "^(root|admin)" /etc/passwd # Zeilen mit root oder admin am Anfang
Perl-kompatible Regex
grep -P "\d{3}-\d{4}" datei.txt
Praktische Anwendungsfälle
Logfiles durchsuchen
grep -i "error" /var/log/syslog
grep -E "error|warning|critical" /var/log/syslog
Mit Zeitstempel
grep "2025-11-07" /var/log/application.log
Konfigurationsdateien
# Alle nicht-kommentierten Zeilen
grep -v "^#" /etc/ssh/sshd_config | grep -v "^$"
In komprimierten Dateien
zgrep "suchtext" datei.log.gz
Mit find kombinieren
find . -name "*.log" -exec grep -l "ERROR" {} +
Mehrere Muster aus Datei
grep -f muster.txt datei.txt
muster.txt:
fehler
warnung
critical
Pipe-Verwendung
ps aux | grep firefox
cat datei.txt | grep -v "^#" | grep "wichtig"
dmesg | grep -i usb
Farbige Ausgabe
grep --color=auto "suchtext" datei.txt
Alias in .bashrc setzen:
alias grep='grep --color=auto'
Alternative Tools
- ripgrep (rg) - sehr schnell, modern, empfohlen
- ag (The Silver Searcher) - schneller als grep
- ack - für Code-Suche optimiert
Beispiel mit ripgrep:
rg "suchtext" /pfad # automatisch rekursiv, ignoriert .gitignore
Zusammenfassung wichtiger Optionen
| Option | Beschreibung |
|---|---|
-i |
Case-insensitive |
-r |
Rekursiv |
-n |
Mit Zeilennummern |
-c |
Anzahl der Treffer |
-l |
Nur Dateinamen |
-v |
Invertiert (nicht enthalten) |
-w |
Ganzes Wort |
-E |
Extended Regex |
-A/-B/-C |
Kontext anzeigen |