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

Wie man nach mehreren Zeichenfolgen und Mustern grep

grep ist ein leistungsstarkes Befehlszeilentool, mit dem Sie eine oder mehrere Eingabedateien nach Zeilen durchsuchen können, die mit einem regulären Ausdruck übereinstimmen, und jede übereinstimmende Zeile in die Standardausgabe schreibt.

In diesem Artikel zeigen wir Ihnen, wie Sie GNU grep verwenden um nach mehreren Zeichenfolgen oder Mustern zu suchen.

Mehrere Muster gruppieren #

GNU grep unterstützt drei Syntaxen für reguläre Ausdrücke:Basic, Extended und Perl-kompatibel. Wenn kein regulärer Ausdruckstyp angegeben ist, grep Suchmuster als grundlegende reguläre Ausdrücke interpretieren.

Um nach mehreren Mustern zu suchen, verwenden Sie den OR-Operator (Alternation).

Der Wechseloperator | (Pipe) ermöglicht es Ihnen, verschiedene mögliche Übereinstimmungen anzugeben, die wörtliche Zeichenfolgen oder Ausdruckssätze sein können. Dieser Operator hat die niedrigste Priorität aller regulären Ausdrucksoperatoren.

Die Syntax zum Suchen mehrerer Muster mit grep grundlegende reguläre Ausdrücke sind wie folgt:

grep 'pattern1\|pattern2' file...

Schließen Sie den regulären Ausdruck immer in einfache Anführungszeichen ein, um die Interpretation und Erweiterung der Metazeichen durch die Shell zu vermeiden.

Bei der Verwendung einfacher regulärer Ausdrücke werden die Metazeichen als Literalzeichen interpretiert. Um die besondere Bedeutung der Metazeichen beizubehalten, müssen sie mit einem Backslash maskiert werden (\ ). Aus diesem Grund maskieren wir den ODER-Operator (| ) mit einem Schrägstrich.

Um das Muster als erweiterten regulären Ausdruck zu interpretieren, rufen Sie grep auf das -E ( oder --extended-regexp ) Möglichkeit. Wenn Sie einen erweiterten regulären Ausdruck verwenden, maskieren Sie | nicht Betreiber:

grep -E 'pattern1|pattern2' file...

Weitere Informationen zum Erstellen regulärer Ausdrücke finden Sie in unserem Artikel Grep regex.

Grep Mehrere Strings #

Literale Strings sind die grundlegendsten Muster.

Im folgenden Beispiel suchen wir nach allen Vorkommen der Wörter fatal , error und critical in der Nginx-Logerror-Datei:

grep 'fatal\|error\|critical' /var/log/nginx/error.log

Wenn die gesuchte Zeichenfolge Leerzeichen enthält, schließen Sie sie in doppelte Anführungszeichen ein.

Hier ist dasselbe Beispiel, das den erweiterten regulären Ausdruck verwendet, wodurch die Notwendigkeit entfällt, den Operator | zu maskieren

grep -E 'fatal|error|critical' /var/log/nginx/error.log

Standardmäßig grep unterscheidet zwischen Groß- und Kleinschreibung. Das bedeutet, dass Groß- und Kleinbuchstaben als unterschiedlich behandelt werden.

Um die Groß-/Kleinschreibung bei der Suche zu ignorieren, rufen Sie grep with auf das -i Option (oder --ignore-case ):

grep -i 'fatal\|error\|critical' /var/log/nginx/error.log

Wenn Sie nach einer Zeichenfolge suchen, grep zeigt alle Zeilen an, in denen die Zeichenfolge in größere Zeichenfolgen eingebettet ist. Wenn Sie also nach „Fehler“ gesucht haben, grep druckt auch die Zeilen, in denen „error“ in größere Wörter eingebettet ist, wie „errorless“ oder „antiterrorists“.

Um nur die Zeilen zurückzugeben, in denen die angegebene Zeichenfolge ein ganzes Wort ist (umschlossen von Nicht-Wort-Zeichen), verwenden Sie -w ( oder --word-regexp ) Option:

grep -w 'fatal\|error\|critical' /var/log/nginx/error.log

Wortzeichen umfassen alphanumerische Zeichen (a-z, A-Z und 0-9) und Unterstriche (_). Alle anderen Zeichen werden als Nichtwortzeichen betrachtet.

Weitere Einzelheiten zu grep Optionen finden Sie in unserem Artikel Grep-Befehl.

Schlussfolgerung #

Wir haben Ihnen gezeigt, wie Sie grep ausführen um nach mehreren Mustern, Zeichenketten und Wörtern zu suchen.

Wenn Sie Fragen oder Feedback haben, können Sie gerne einen Kommentar hinterlassen.


Linux
  1. Wie führe ich Grep mit mehreren und Mustern aus?

  2. Wie spezifizieren wir mehrere Ignorierungsmuster für den Befehl „tree“?

  3. Linux – Wie kann man nach einem bestimmten Wort suchen und Text greifen?

  4. Wie finde ich mehrere Zeichenfolgen in Dateien?

  5. Wie chown ich das Verzeichnis für mehrere Benutzer?

Wie man nach mehreren Zeichenfolgen, Mustern oder Wörtern sucht

Wie man mehrere Schach-Engines auf XBoard installiert und einrichtet

So verwenden Sie bash if -z und if -n zum Testen von Zeichenfolgen in Linux

So sichern und wiederherstellen Sie eine SD-Karte für Raspberry Pi

Wie man in einem Bash-Skript nach Unicode sucht

Wie man nach einem bestimmten Wort sucht und Text greift