GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verwenden Sie den grep-Befehl unter Linux/UNIX

Einführung

Diese Anleitung beschreibt die nützlichsten grep-Befehle für Linux-/Unix-Systeme.

Nachdem Sie alle Befehle und Beispiele durchgegangen sind, lernen Sie, wie Sie grep verwenden, um Dateien vom Terminal aus nach einem Text zu durchsuchen.

Voraussetzungen

  • Linux- oder UNIX-ähnliches System
  • Zugriff auf ein Terminal/eine Befehlszeile
  • Ein Benutzer mit Berechtigungen zum Zugriff auf die gewünschten Dateien und Verzeichnisse

Was ist der grep-Befehl?

Grep ist ein Akronym, das für G steht lobales R zB E Ausdruck P drucken.

Grep ist ein Linux / Unix-Befehlszeilentool, mit dem nach einer Zeichenfolge in einer bestimmten Datei gesucht wird. Das Textsuchmuster wird als regulärer Ausdruck bezeichnet. Wenn es eine Übereinstimmung findet, druckt es die Zeile mit dem Ergebnis. Der Befehl grep ist praktisch, wenn Sie große Protokolldateien durchsuchen.

Mit dem grep-Befehl

Der Befehl grep besteht in seiner grundlegendsten Form aus drei Teilen. Der erste Teil beginnt mit grep , gefolgt von dem gesuchten Muster. Nach dem String kommt der Dateiname, den grep durchsucht.

Die einfachste grep-Befehlssyntax sieht so aus:

Der Befehl kann viele Optionen, Mustervariationen und Dateinamen enthalten. Kombinieren Sie so viele Optionen wie nötig, um die gewünschten Ergebnisse zu erzielen. Unten sind die häufigsten grep-Befehle mit Beispielen aufgeführt .

So suchen Sie eine Datei

Zum Drucken einer beliebigen Zeile aus einer Datei, die ein bestimmtes Zeichenmuster enthält, in unserem Fall phoenix in der Datei sample2 , führen Sie den folgenden Befehl aus:

grep phoenix sample2

Grep zeigt jede Zeile an, in der es eine Übereinstimmung für das Wort phoenix gibt . Wenn Sie diesen Befehl ausführen, erhalten Sie keine genauen Übereinstimmungen. Stattdessen druckt das Terminal die Zeilen mit Wörtern, die die von Ihnen eingegebene Zeichenfolge enthalten. Hier ist ein Beispiel:

Mehrere Dateien durchsuchen

Um mehrere Dateien mit dem grep-Befehl zu durchsuchen, geben Sie die zu durchsuchenden Dateinamen getrennt durch ein Leerzeichen ein.

In unserem Fall der grep-Befehl, um das Wort phoenix abzugleichen in drei Dateien sample , sample2 und sample3 sieht wie dieses Beispiel aus:

grep phoenix sample sample2 sample3

Das Terminal gibt den Namen jeder Datei aus, die die übereinstimmenden Zeilen enthält, sowie die tatsächlichen Zeilen, die die erforderliche Zeichenfolge enthalten.

Sie können beliebig viele Dateinamen anhängen. Das Terminal gibt für jede Übereinstimmung, die es in den aufgelisteten Dateien findet, eine neue Zeile mit dem Dateinamen aus.

Alle Dateien im Verzeichnis durchsuchen

Um alle Dateien im aktuellen Verzeichnis zu durchsuchen, verwenden Sie ein Sternchen anstelle eines Dateinamens am Ende eines grep-Befehls.

In diesem Beispiel verwenden wir nix als Suchkriterium:

grep nix *

Die Ausgabe zeigt den Namen der Datei mit nix und gibt die gesamte Zeile zurück.

Um nur ganze Wörter zu finden

Mit Grep können Sie nur die Ergebnisse für ganze Wörter suchen und drucken. Um nach dem Wort Phönix zu suchen fügen Sie in allen Dateien im aktuellen Verzeichnis -w hinzu zum grep-Befehl.

grep -w phoenix *

Diese Option gibt nur die Zeilen mit Ganzwortübereinstimmungen und die Namen der Dateien aus, in denen sie gefunden wurden:

Wenn -w weggelassen wird, zeigt grep das Suchmuster auch dann an, wenn es ein Teilstring eines anderen Wortes ist.

Wenn Sie nach mehreren Zeichenfolgen und Wortmustern suchen möchten, lesen Sie unseren Artikel zum Suchen nach mehreren Zeichenfolgen, Mustern oder Wörtern.

Groß-/Kleinschreibung bei Grep-Suchen ignorieren

Da bei grep-Befehlen zwischen Groß- und Kleinschreibung unterschieden wird, ist -i einer der nützlichsten Operatoren für grep-Suchen. Statt Ergebnisse nur in Kleinbuchstaben zu drucken, zeigt das Terminal sowohl Ergebnisse in Groß- als auch in Kleinbuchstaben an. Die Ausgabe enthält Zeilen mit Groß-/Kleinschreibung.

Ein Beispiel für diesen Befehl:

grep -i phoenix *

Wenn wir den Operator -i operator verwenden um Dateien im aktuellen Verzeichnis nach phoenix zu durchsuchen , sieht die Ausgabe so aus:

Um Unterverzeichnisse zu durchsuchen

Um alle Unterverzeichnisse in eine Suche einzubeziehen, fügen Sie das -r hinzu Operator zum grep-Befehl.

grep -r phoenix *

Dieser Befehl gibt die Übereinstimmungen für alle Dateien im aktuellen Verzeichnis, Unterverzeichnisse und den genauen Pfad mit dem Dateinamen aus. Im Beispiel unten haben wir außerdem das -w hinzugefügt Operator, um ganze Wörter anzuzeigen, aber die Ausgabeform ist die gleiche.

Inverse grep-Suche

Sie können grep verwenden, um alle Zeilen auszugeben, die nicht sind einem bestimmten Zeichenmuster entsprechen. Um die Suche umzukehren, hängen Sie -v an zu einem grep-Befehl.

Um alle Zeilen auszuschließen, die phoenix enthalten , geben Sie ein:

grep -v phoenix sample

Das Terminal druckt alle Zeilen, die das als Suchkriterium verwendete Wort nicht enthalten. Verwenden Sie -i operator Groß-/Kleinschreibung ignorieren, um das für diese Suche verwendete Wort vollständig auszuschließen:

So zeigen Sie Zeilen an, die genau mit einer Suchzeichenfolge übereinstimmen

Der Befehl grep gibt ganze Zeilen aus, wenn er eine Übereinstimmung in einer Datei findet. Um nur die Zeilen zu drucken, die vollständig mit der Suchzeichenfolge übereinstimmen, fügen Sie das -x hinzu Option.

grep -x “phoenix number3” *

Die Ausgabe zeigt nur die Zeilen mit der exakten Übereinstimmung. Befinden sich weitere Wörter oder Zeichen in derselben Zeile, schließt grep diese nicht in die Suchergebnisse ein. Vergessen Sie nicht, Anführungszeichen zu verwenden, wenn ein Suchmuster ein Leerzeichen oder ein Symbol enthält.

Hier ist ein Vergleich der Ergebnisse ohne und mit -x Operator in unserem grep-Befehl:

Zum Auflisten der Namen übereinstimmender Dateien

Manchmal müssen Sie nur die Namen der Dateien sehen, die ein Wort oder eine Zeichenfolge enthalten, und die eigentlichen Zeilen ausschließen. Um nur die Dateinamen zu drucken, die Ihrer Suche entsprechen, verwenden Sie -l Betreiber:

grep -l phoenix *

Die Ausgabe zeigt die genauen Dateinamen, die phoenix enthalten im aktuellen Verzeichnis, druckt aber nicht die Zeilen mit dem entsprechenden Wort:

Verwenden Sie zur Erinnerung den rekursiven Suchoperator -r um alle Unterverzeichnisse in Ihre Suche einzubeziehen.

Um die Anzahl der Übereinstimmungen zu zählen

Grep kann die Dateinamen und die Anzahl der Zeilen anzeigen, in denen es eine Übereinstimmung für Ihr Wort findet.

Verwenden Sie das -c Operator zum Zählen der Anzahl der Übereinstimmungen:

grep -c phoenix *

So zeigen Sie die Anzahl der Zeilen vor oder nach einer Suchzeichenfolge an

Manchmal benötigen Sie mehr Inhalt in den Suchergebnissen, um zu entscheiden, was am relevantesten ist.

Verwenden Sie die folgenden Operatoren, um die gewünschten Zeilen vor, nach oder beidem hinzuzufügen:

  • Verwenden Sie -A und eine Reihe von Zeilen, die nach einer Übereinstimmung angezeigt werden sollen:grep -A 3 phoenix sample - Dieser Befehl gibt drei Zeilen nach der Übereinstimmung aus.
  • Verwenden Sie -B und eine Reihe von Zeilen, die vor einer Übereinstimmung angezeigt werden sollen:grep -B 2 phoenix sample - Dieser Befehl gibt zwei Zeilen vor dem Treffer aus.
  • Verwenden Sie -C und eine Reihe von Zeilen, die vor und angezeigt werden sollen nach dem Abgleich:grep -C 2 phoenix sample - Dieser Befehl gibt zwei Zeilen vor und nach dem Treffer aus.

Um Zeilennummern mit grep-Übereinstimmungen anzuzeigen

Wenn grep Ergebnisse mit vielen Übereinstimmungen ausgibt, ist es praktisch, die Zeilennummern zu sehen. Hängen Sie das -n an Operator zu jedem grep-Befehl, um die Zeilennummern anzuzeigen.

Wir werden nach Phoenix suchen im aktuellen Verzeichnis zwei Zeilen vor und nach den Übereinstimmungen zusammen mit ihren Zeilennummern anzeigen.

grep -n -C 2 Phoenix sample

Grep-Ausgabe auf eine feste Anzahl von Zeilen begrenzen

Einzelne Dateien, z. B. Protokolldateien, können viele Übereinstimmungen für grep-Suchmuster enthalten. Begrenzen Sie die Anzahl der Zeilen in der grep-Ausgabe, indem Sie das -m hinzufügen Option und eine Zahl für den Befehl.

grep -m2 Phoenix sample

In diesem Fall gibt das Terminal die ersten beiden Übereinstimmungen aus, die es im sample findet Datei.

Wenn Sie keine Datei angeben und alle Dateien in einem Verzeichnis durchsuchen, gibt die Ausgabe die ersten beiden Ergebnisse von alle aus Datei zusammen mit dem Dateinamen, der die Übereinstimmungen enthält.


Linux
  1. So verwenden Sie den Linux-Grep-Befehl

  2. So verwenden Sie den Verlaufsbefehl unter Linux

  3. So verwenden Sie den Linux-Verlaufsbefehl

  4. So verwenden Sie den Su-Befehl unter Linux

  5. So verwenden Sie den Linux-Bildschirmbefehl

So verwenden Sie den Befehl sysctl unter Linux

So verwenden Sie den Befehl zum Herunterfahren von Linux

So verwenden Sie grep unter Linux

Grep-Befehl unter Linux/UNIX

Finden Sie Befehl in Linux/UNIX

Verwendung des grep-Befehls unter Linux