open-how2 – Entdecke. Verstehe. Nutze.
Veröffentlicht am
How2-Tipps

grep: So durchsuchst du Textdateien unter Linux schnell und gezielt

Autor
grep: So durchsuchst du Textdateien unter Linux schnell und gezielt

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