- Veröffentlicht am
- • How2-Tipps
grep: So durchsuchst du Textdateien unter Linux schnell und gezielt
- Autor
-
-
- Benutzer
- tmueller
- Beiträge dieses Autors
- Beiträge dieses Autors
-

Der Befehl grep
unter Linux – Muster in Textdateien finden und verstehen
Der Befehl grep
ist eines der bekanntesten Werkzeuge unter Linux und Unix-Systemen. Er wird verwendet, um Textzeilen zu durchsuchen, die einem bestimmten Muster entsprechen – meist einem Wort, einer Zeichenkette oder einem regulären Ausdruck.
Der Name grep
steht für:
global regular expression print
Grundlagen: Was macht grep
?
grep
liest eine oder mehrere Dateien ein und gibt alle Zeilen aus, die ein bestimmtes Muster enthalten.
Beispiel:
grep Hello test.txt
Wenn test.txt
den folgenden Inhalt hat:
Hello...how are you?
This is a test.
HELLO again.
Dann gibt grep
aus:
Hello...how are you?
Standardmäßig unterscheidet grep
Groß- und Kleinschreibung – Hello
ist nicht gleich HELLO
.
Syntax von grep
grep [OPTIONEN] SUCHMUSTER [DATEI...]
Beispiele:
grep Fehler /var/log/syslog
grep -i "hello" *.txt
grep -r "main()" src/
Häufig genutzte Optionen
Option | Beschreibung |
---|---|
-i |
Ignoriert Groß-/Kleinschreibung (case-insensitive) |
-r oder -R |
Durchsucht Verzeichnisse rekursiv |
-n |
Zeigt Zeilennummern mit an |
-v |
Gibt nur Zeilen aus, die nicht dem Muster entsprechen |
-c |
Gibt nur die Anzahl der Treffer (matches) pro Datei aus |
-l |
Listet nur die Dateinamen auf, die das Muster enthalten |
-e |
Ermöglicht mehrere Suchmuster |
--color=auto |
Hebt gefundene Muster farbig hervor (bei vielen Distributionen Standard) |
Beispiele aus der Praxis
1. Einfache Suche
grep "Fehler" logfile.txt
Sucht nach dem Wort "Fehler" in der Datei logfile.txt
.
2. Suche ohne Beachtung der Groß-/Kleinschreibung
grep -i "fehler" logfile.txt
Findet sowohl „Fehler“, „fehler“, als auch „FEHLER“.
3. Zeilennummern anzeigen
grep -n "Timeout" server.log
Ausgabe z. B.:
42:Connection Timeout after 30 seconds
4. Alle Zeilen außer dem Muster anzeigen
grep -v "DEBUG" application.log
Zeigt nur Zeilen, die nicht „DEBUG“ enthalten – z. B. für saubere Protokolle.
5. Nur Anzahl der Treffer zählen
grep -c "ERROR" system.log
Gibt die Anzahl der Zeilen mit dem Wort „ERROR“ aus.
6. Alle passenden Dateinamen ausgeben
grep -l "Version 3.2" *.txt
Gibt alle .txt
-Dateien aus, in denen „Version 3.2“ vorkommt.
7. Rekursive Suche in Verzeichnissen
grep -r "TODO" src/
Durchsucht den gesamten Quellcode im src/
-Verzeichnis nach Kommentaren mit „TODO“.
8. Verwendung regulärer Ausdrücke
grep "^#.*" config.cfg
Sucht alle Zeilen, die mit #
beginnen – typische Kommentare in Konfigurationsdateien.
Ein weiteres Beispiel:
grep "[0-9]{2,}" logfile.txt
Sucht nach Zahlen mit mindestens zwei Ziffern (je nach grep
-Version muss ggf. grep -P
oder egrep
verwendet werden).
Kombination mit anderen Befehlen
grep
lässt sich ideal mit Pipes (|
) kombinieren:
dmesg | grep usb
Filtert Kernel-Meldungen und gibt nur Zeilen mit Bezug zu „usb“ aus.
Oder:
ps aux | grep apache
Zeigt laufende Prozesse mit dem Namen „apache“.
Fazit
grep
ist ein vielseitiges Werkzeug für die Textsuche und -filterung unter Linux. Ob du Logdateien analysierst, Quellcode durchsuchst oder bestimmte Inhalte ausgibst – mit den richtigen Optionen ist grep
unverzichtbar in jedem Admin- oder Entwickleralltag.
Weitere Informationen: https://man7.org/linux/man-pages/man1/grep.1.html
man grep