Grep ist ein leistungsstarker UNIX-Befehl, mit dem Sie den Dateiinhalt nach einer Vielzahl von Parametern durchsuchen können. Es ist besonders hilfreich, wenn Sie Fehler beheben oder Fehler beheben.
Der Befehl grep hat eine Vielzahl von Optionen und Anwendungsfällen. Sie werden wahrscheinlich nie alle brauchen oder verwenden. Am Ende werden Sie jedoch die meiste Zeit eine Handvoll grep-Befehle verwenden.
Dieser Artikel listet die gängigsten grep-Befehle mit kurzen Beispielen auf. Das Linux-Handbuch hat bereits einen ausführlichen Artikel über grep, daher werde ich hier nicht in die Tiefe gehen. Ich werde hier nur die allgemeinen Optionen und ihre Erklärung erläutern.
Es ist gut, wenn Sie den grep-Befehl bereits kennen, aber immer wieder vergessen, welche Option was tut.
Option | Befehlsbeispiel | Beschreibung |
---|---|---|
ich | grep -i Musterdatei | Suche ohne Berücksichtigung der Groß-/Kleinschreibung |
A | grep -A n Musterdatei | Nach dem Spiel n Zeilen anzeigen |
B | grep -B n Musterdatei | Zeige n Zeilen vor dem Spiel |
C | grep -C n Musterdatei | Zeige n Zeilen vor und nach dem Spiel |
v | grep -v Musterdatei | Zeige Zeilen, die nicht übereinstimmen |
c | grep -c Musterdatei | Anzahl übereinstimmender Zeilen zählen |
l | grep -l Musterdatei | Nur die Dateinamen anzeigen |
w | grep -w Musterdatei | Passen Sie das genaue Wort an |
e | grep -e Regex-Datei | Passen Sie das Regex-Muster an |
ein | grep -a Musterdatei | In Binärdateien suchen |
r | grep -r Musterverzeichnis | Suche rekursiv im Verzeichnis |
Ich habe einen PDF-Spickzettel beigefügt, den Sie herunterladen, ausdrucken und auf Ihrem Schreibtisch aufbewahren können.
Laden Sie den Grep-Spickzettel herunter
Schnelle Beispiele für den Grep-Befehl
Sie wissen wahrscheinlich bereits, dass Sie grep wie folgt verwenden müssen, um nach einem bestimmten Text oder Muster in einer Datei zu suchen:
grep search_pattern filename
Sehen wir uns einige häufige Anwendungsfälle des Befehls grep an.
Suche ohne Berücksichtigung der Groß-/Kleinschreibung
Standardmäßig wird bei der Suche mit grep zwischen Groß- und Kleinschreibung unterschieden. Mit dem -i
können Sie die Groß-/Kleinschreibung ignorieren Möglichkeit:
grep -i search_pattern filename
Auf diese Weise gibt grep Zeilen zurück, die mit beiden Holmes
übereinstimmen und holmes
.
Zeigt Zeilen vor und nach den passenden Zeilen
Standardmäßig sehen Sie nur die übereinstimmenden Zeilen. Aber wenn Sie etwas beheben, ist es hilfreich, ein paar Zeilen vor und/oder nach den übereinstimmenden Zeilen zu sehen.
Sie können das -A
verwenden Zeilen nach den passenden anzuzeigen. Denken Sie daran, A steht für After.
Der folgende Befehl zeigt die übereinstimmenden Zeilen zusammen mit den 5 Zeilen nach der Übereinstimmung.
grep -A 5 search_pattern filename
Ebenso können Sie das -B
verwenden Option, Zeilen vor den passenden anzuzeigen. Denken Sie daran, B steht für Before.
Der folgende Befehl zeigt 5 Zeilen vor den übereinstimmenden zusammen mit der/den übereinstimmenden Zeile(n).
grep -B 5 search_pattern filename
Mein Favorit ist die Option -C
weil es Linien anzeigt, die vor und nach den passenden liegen. Denken Sie daran, dass C hier für Kreis steht.
Der folgende Befehl zeigt 5 Zeilen vor der übereinstimmenden Zeile, die übereinstimmende Zeile und 5 Zeilen nach der übereinstimmenden Zeile.
grep -C 5 search_pattern filename
Zeige die Zeilen, die nicht übereinstimmen
Sie können grep verwenden, um alle Zeilen anzuzeigen, die NICHT mit dem angegebenen Muster übereinstimmen. Dieses 'invert matching' wird mit dem -v
verwendet Möglichkeit:
grep -v search_pattern filename
Sie können -i
kombinieren und -v
Optionen.
Anzahl der übereinstimmenden Zeilen zählen
Anstatt die übereinstimmenden Zeilen anzuzeigen, können Sie einfach mit -c
abrufen, wie viele Zeilen mit dem Muster übereinstimmen Möglichkeit. Dies ist Kleinbuchstabe c.
grep -c search_pattern filename
Sie können das -c
kombinieren und -v
Option, um die Anzahl der Zeilen zu erhalten, die nicht mit dem angegebenen Muster übereinstimmen. Sie können natürlich die case-insensitive Option -i
verwenden .
Zeige die Zeilennummern der übereinstimmenden Zeilen
Um die Zeilennummern der übereinstimmenden Zeilen anzuzeigen, können Sie das -n
verwenden Option.
grep -n search_pattern filename
Sie können dasselbe mit der invertierten Suche tun.
Suche in mehreren Dateien
Sie können mehr als eine Datei angeben, die grep durchsuchen soll.
grep search_pattern file1 file2
Das könnte funktionieren, aber ein praktischeres Beispiel ist die Suche nach einem bestimmten Dateityp. Wenn Sie beispielsweise nur in Shell-Skripten (Dateien mit der Endung .sh) nach einer Zeichenfolge suchen möchten, können Sie Folgendes verwenden:
grep search_pattern *.sh
Suche rekursiv nach allen Dateien in einem Verzeichnis
Sie können eine rekursive Suche mit der grep-Option -r
durchführen . Es wird in allen Dateien im aktuellen Verzeichnis und seinen Unterverzeichnissen nach dem angegebenen Muster suchen.
grep -r search_pattern directory_path
Nur die Dateinamen anzeigen
Standardmäßig zeigt grep die passenden Zeilen an. Wenn Sie die Suche in mehreren Dateien durchgeführt haben und nur sehen möchten, welche Dateien die Zeichenfolge enthalten, können Sie das -l
verwenden Option.
grep -l search_pattern files_pattern
Angenommen, Sie möchten sehen, welche Markdown-Dateien das Wort „Handbuch“ enthalten, können Sie Folgendes verwenden:
grep -l handbook *.md
Suche nur nach ganzen Wörtern
Standardmäßig zeigt grep alle Zeilen an, die die angegebene Zeichenfolge enthalten. Das wollen Sie vielleicht nicht immer. Wenn Sie nach dem Wort „done“ suchen, werden auch Zeilen angezeigt, die die Wörter „doner“ oder „abandoned“ enthalten.
Um grep nur nach ganzen Wörtern suchen zu lassen, können Sie die Option -w
verwenden :
grep -w search_string file
Auf diese Weise werden bei der Suche nach dem Wort „done“ nur Zeilen angezeigt, die „done“ enthalten, nicht „doner“ oder „abandoned“.
Suche nach Regex-Mustern
Sie können Ihre Suche optimieren, indem Sie Regex-Muster verwenden. Es gibt eine spezielle Option -e
das ermöglicht die Verwendung von Regex-Mustern und der Option -E
die die Verwendung erweiterter Regex-Muster ermöglicht.
grep -e regex_pattern file
Suche nach diesem oder jenem Muster
Sie können in derselben grep-Suche nach mehreren Mustern suchen. Wenn Sie die Zeilen sehen möchten, die das eine oder andere Muster enthalten, können Sie den OR-Operator |
verwenden . Sie müssen dieses Sonderzeichen jedoch folgendermaßen maskieren.
grep 'pattern1\|pattern' filename
Sie können mehrere Muster mit dem OR-Operator verwenden.
Es gibt keine spezielle Option für den UND-Operator. Sie können dafür grep mehrmals mit Pipe-Umleitung verwenden.
Binärdateien durchsuchen
Grep ignoriert standardmäßig Binärdateien. Sie können es mit -a
in Binärdateien suchen lassen, als wäre es eine Textdatei Option.
grep -a pattern binary_file
Spickzettel für den Grep-Befehl herunterladen
Sie können diese Seite mit einem Lesezeichen versehen, um schnell auf die grep-Befehlsoptionen und Anwendungsfälle zu verweisen.
Sie können dieses grep-Cheatsheet auch im PDF-Format herunterladen, ausdrucken und auf Ihrem Schreibtisch aufbewahren, um einen schnellen Überblick zu haben, ohne Zeit zu verlieren.
Laden Sie Grep Command Cheatsheet KOSTENLOS herunter. Sofortiger Download gängiger Grep-Befehle mit Beschreibung im PDF-Format
Lassen Sie mich wissen, wenn Sie einen anderen allgemeinen grep-Anwendungsfall haben, den Sie auf dieser Seite sehen möchten.