Inhalte mit dem Grep-Befehl suchen
Die Suche nach Inhalten in Dateien ist eine häufige Aufgabe für Linux-Benutzer. Zum Beispiel möchten Sie möglicherweise alle Dateien finden, die ein bestimmtes Wort oder einen bestimmten Ausdruck enthalten. Es ist sehr nützlich, wenn Sie nach einer bestimmten Konfiguration oder einem Methodenaufruf in einem großen Codebestand suchen.
grep
ist ein Befehlszeilen-Dienstprogramm, das in Linux-Systemen verwendet wird, um nach bestimmten Mustern in Dateiinhalten zu suchen. Es ist ein leistungsstolles Werkzeug, das Benutzern ermöglicht, nach Textzeichenfolgen, regulären Ausdrücken oder Mustern in einer oder mehreren Dateien zu suchen. grep
wird häufig in Verbindung mit anderen Befehlen verwendet, um Daten zu filtern und zu manipulieren. Es ist auch auf anderen Plattformen wie Windows und macOS verfügbar.
In diesem Tutorial zeigen wir Ihnen, wie Sie den grep
-Befehl anhand praktischer Beispiele und detaillierter Erklärungen der häufigsten Optionen verwenden können.
Wie man den Grep-Befehl verwendet
Die grundlegende Syntax des grep
-Befehls lautet wie folgt:
grep [OPTIONEN] MUSTER [DATEI...]
Der grep
-Befehl sucht nach einem Muster in einer oder mehreren Dateien. Wenn das Muster gefunden wird, werden die übereinstimmenden Zeilen ausgegeben. Wenn keine Dateien angegeben sind, liest grep
von der Standardeingabe.
Angenommen, Sie haben eine Datei namens file.txt
mit folgendem Inhalt:
This is a test file.
It has some text in it.
Another line of text.
Um nach dem Wort text
in der Datei file.txt
zu suchen, würden Sie den folgenden Befehl ausführen:
> grep text file.txt
It has some text in it.
Die Ausgabe zeigt die Zeile, die das Wort text
enthält.
Wenn Sie den Kontext der Übereinstimmung anzeigen möchten, können Sie die Option -C
gefolgt von der Anzahl der Zeilen verwenden, die vor und nach der Übereinstimmung angezeigt werden sollen:
> grep -C 1 Text file.txt
This is a test file.
It has some text in it.
Another line of text.
Die Ausgabe zeigt die Zeile, die das Wort Text
enthält, sowie 1 Zeile davor und danach.
Wenn es mehrere Ergebnisse gibt, wird die Ausgabe durch --
getrennt. Zum Beispiel:
> grep -C 1 xxx file.txt
This is a test file.
It has some text in it.
Another line of text.
--
This is a test file.
It has some text in it.
Another line of text.
Grep-Befehlsoptionen
Der grep
-Befehl wird mit vielen Optionen geliefert, die es Ihnen ermöglichen, die Ausgabe anzupassen und nach bestimmten Mustern zu suchen. In diesem Abschnitt zeigen wir Ihnen die häufigsten Optionen.
Groß-/Kleinschreibung ignorieren
Standardmäßig ist grep
zeichengroß- und kleinschreibungsabhängig. Das bedeutet, dass es nicht nach Text
oder TEXT
sucht, wenn Sie nach dem Wort text
suchen.
Um grep
zeichengroß- und kleinschreibungsunabhängig zu machen, verwenden Sie die Option -i
:
> grep -i TEXT file.txt
It has some text in it.
Invertiere Übereinstimmung
Um die Übereinstimmung umzukehren, verwenden Sie die Option -v
. Es werden alle Zeilen gedruckt, die nicht dem Muster entsprechen:
> grep -v text file.txt
This is a test file
Another line of text.
Zeilennummern anzeigen
Um die Zeilennummern der übereinstimmenden Zeilen anzuzeigen, verwenden Sie die Option -n
:
> grep -n text file.txt
2:It has some text in it.
Nur übereinstimmenden Teil anzeigen
Um nur den übereinstimmenden Teil der Zeile anzuzeigen, verwenden Sie die Option -o
:
> grep -o text file.txt
text
Nur Dateinamen anzeigen
Um nur die Dateinamen anzuzeigen, die dem Muster entsprechen, verwenden Sie die Option -l
:
> grep -l text file.txt
file.txt
Nur Anzahl anzeigen
Um nur die Anzahl der übereinstimmenden Zeilen anzuzeigen, verwenden Sie die Option -c
:
> grep -c text file.txt
1
Rekursiv suchen
Zusätzlich zur Suche in einer einzelnen Datei können Sie auch rekursiv in einem Verzeichnis und seinen Unterverzeichnissen mit der Option -r
suchen:
> grep -r text .
file.txt:It has some text in it.
Mehrere Muster suchen
Um nach mehreren Mustern zu suchen, verwenden Sie die Option -e
, gefolgt vom Muster:
> grep -e text -e line file.txt
It has some text in it.
Another line of text.
Beachten Sie, dass die Muster mit dem logischen ODER-Operator abgeglichen werden, was bedeutet, dass wenn eines der Muster übereinstimmt, die Zeile ausgegeben wird.
Dateien ausschließen
Um Dateien auszuschließen, die einem bestimmten Muster entsprechen, verwenden Sie die Option --exclude
:
> grep --exclude=*.txt text .
Sie können auch die Option --exclude-dir
verwenden, um Verzeichnisse auszuschließen:
> grep --exclude-dir=dir text .
Beachten Sie, dass der Wert von --exclude
und --exclude-dir
Glob-Ausdrücke sind, die mit den Dateinamen abgeglichen werden. Sie können *
verwenden, um eine beliebige Anzahl von Zeichen und ?
verwenden, um ein einzelnes Zeichen abzustimmen.
Reguläre Ausdrücke verwenden
grep
unterstützt reguläre Ausdrücke. Um reguläre Ausdrücke zu verwenden, verwenden Sie die Option -E
:
> grep -E 't.xt' file.txt
It has some text in it.
Beachten Sie, dass der Punkt im regulären Ausdruck jedes Zeichen abstimmt. Also stimmt t.xt
mit text
überein.
Übliche Grep-Befehlsbeispiele
In diesem Abschnitt zeigen wir Ihnen einige praktische Beispiele für die Verwendung des grep
-Befehls.
Nach einem Wort in einer Datei suchen
Verwenden Sie den folgenden Befehl, um nach einem Wort in einer Datei zu suchen:
> grep -n -C 2 -i Wort datei.txt
Nach einem Wort unter einem bestimmten Verzeichnis suchen
Verwenden Sie den folgenden Befehl, um nach einem Wort unter einem bestimmten Verzeichnis zu suchen:
> grep -r -n -i Wort /pfad/zum/verzeichnis
Dies ist nützlich, wenn Sie beispielsweise nach einem bestimmten Variablennamen im node_modules
-Verzeichnis suchen möchten oder überprüfen möchten, ob eine bestimmte Konfiguration in Ihrem Projekt verwendet wird.
Suche und Ausschluss von Verzeichnissen
Verwenden Sie den folgenden Befehl, um nach einem Wort zu suchen und Verzeichnisse auszuschließen:
> grep -r -n -i --exclude-dir=verzeichnis1 --exclude-dir=verzeichnis2 Wort /pfad/zum/verzeichnis
Sie möchten beispielsweise nach einem Wort in einem Projektverzeichnis suchen, aber das node_modules
-Verzeichnis ausschließen.
Fazit
In diesem Tutorial haben wir Ihnen gezeigt, wie Sie den grep
-Befehl verwenden. Sie können nun nach bestimmten Mustern in Dateien und Verzeichnissen suchen. Um mehr über den grep
-Befehl zu erfahren, besuchen Sie die offizielle Dokumentation.