Detaillierte Erklärung zur Verwendung des Grep-Befehls in Linux

Detaillierte Erklärung zur Verwendung des Grep-Befehls in Linux

Linux-Grep-Befehl

Mit dem Linux-Befehl grep können Sie in Dateien nach Zeichenfolgen suchen, die den Kriterien entsprechen. Außerdem können Sie damit nach Dateien suchen, deren Inhalt einen bestimmten Vorlagenstil enthält. Mithilfe der Suche mit regulären Ausdrücken können Sie in Dateien nach angegebenen Zeichenfolgenmustern suchen, Dateinamen auflisten, die mit dem Muster übereinstimmende Teilzeichenfolgen enthalten, und Textzeilen ausgeben, die die Zeichenfolge enthalten.

Die Funktionsweise von grep ist folgendermaßen: Es sucht in einer oder mehreren Dateien nach einem Zeichenfolgenmuster. Wenn die Vorlage Leerzeichen enthält, muss sie in Anführungszeichen gesetzt werden und alles nach der Vorlage wird als Dateiname behandelt. Die Suchergebnisse werden an die Standardausgabe gesendet, ohne den ursprünglichen Dateiinhalt zu beeinträchtigen.

Grundlegende Syntax:

grep [Optionen] Muster [Dateien]

Die wichtigsten Parameter von [Optionen] sind:

-a oder --text: Binärdaten nicht ignorieren.

-A<Anzeigezeilennummer> oder --after-context=<Anzeigezeilennummer>: Zusätzlich zur Anzeige der Spalte, die dem Vorlagenstil entspricht, wird auch der Inhalt nach dieser Zeile angezeigt.

-b oder --byte-offset: Markieren Sie vor der Anzeige der Zeile, die dem Muster entspricht, die Nummer des ersten Zeichens in der Zeile.

-B<Anzeigezeilennummer> oder --before-context=<Anzeigezeilennummer>: Zusätzlich zur Anzeige der Zeile, die dem Stil entspricht, wird auch der Inhalt vor dieser Zeile angezeigt.

-c oder --count: Zählt die Anzahl der Spalten, die dem Muster entsprechen.

-C<Anzeigezeilennummer> oder --context=<Anzeigezeilennummer> oder -<Anzeigezeilennummer>: Zusätzlich zur Anzeige der Zeile, die dem Stil entspricht, wird auch der Inhalt vor und nach dieser Zeile angezeigt.

-d <Aktion> bzw. --directories=<Aktion>: Dieser Parameter muss verwendet werden, wenn statt der Datei das zu durchsuchende Verzeichnis angegeben wird, da sonst der grep-Befehl eine Information meldet und die Aktion abbricht.

-e<Vorlagenmuster> oder --regexp=<Vorlagenmuster>: Geben Sie eine Zeichenfolge als Muster für die Suche nach Dateiinhalten an.

-E oder --extended-regexp: Verwendet das erweiterte Muster regulärer Ausdrücke.

-f<Regeldatei> oder --file=<Regeldatei>: Geben Sie eine Regeldatei an, deren Inhalt ein oder mehrere Regelmuster enthält. So kann grep mit einem Regelmuster pro Zeile nach Dateiinhalten suchen, die die Regelbedingungen erfüllen.

-F oder --fixed-regexp: Behandeln Sie das Muster als eine Liste fester Zeichenfolgen.

-G oder --basic-regexp: Verwenden Sie das Muster als normale Notation.

-h oder --no-filename: Geben Sie den Dateinamen, zu dem die Zeile gehört, nicht an, bevor Sie die Zeile anzeigen, die dem Muster entspricht.

-H oder --with-filename: Vor der Anzeige der Zeile, die dem Muster entspricht, wird der Name der Datei angegeben, zu der die Zeile gehört.

-i oder --ignore-case: Unterschiede in der Groß-/Kleinschreibung ignorieren.

-l oder --file-with-matches: Listet die Namen der Dateien auf, deren Inhalt dem angegebenen Muster entspricht.

-L oder --files-without-match: Listet die Namen der Dateien auf, deren Inhalt nicht dem angegebenen Muster entspricht.

-n oder --line-number: Markieren Sie vor der Anzeige der Zeile, die dem Stil entspricht, die Spaltennummer der Zeile.

-o oder --only-matching: Zeigt nur den passenden MUSTER-Teil an.

-q oder --quiet oder --silent: Keine Informationen anzeigen.

-r oder --recursive: Die Wirkung dieses Parameters ist die gleiche wie bei Angabe des Parameters „-d recurse“.

-s oder --no-messages: Keine Fehlermeldungen anzeigen.

-v oder --revert-match: Alle Zeilen anzeigen, die keinen übereinstimmenden Text enthalten.

-V oder --version: Versionsinformationen anzeigen.

-w oder --word-regexp: Nur Spalten anzeigen, die mit ganzen Wörtern übereinstimmen.

-x --line-regexp: Zeigt nur Spalten an, die vollständig mit dem angegebenen Zeilen-Regexp übereinstimmen.

-y: Dieser Parameter hat die gleiche Wirkung wie die Angabe des Parameters „-i“.

-?: Zeigt das ? gleichzeitig über und unter der passenden Zeile an. Beispielsweise zeigt grep -2 pattern filename die beiden Zeilen über und unter der übereinstimmenden Zeile gleichzeitig an.

Die wichtigsten Parameter des Muster-regulären Ausdrucks sind:

\: Ignorieren Sie die ursprüngliche Bedeutung von Sonderzeichen in regulären Ausdrücken.

^: Passt zum Zeilenanfang des regulären Ausdrucks.

$: Passt zum Ende des regulären Ausdrucks.

\<: Beginnen Sie mit der Zeile, die dem regulären Ausdruck entspricht.

\>: Bis zum Ende der Zeile, die dem regulären Ausdruck entspricht.

[]: Ein einzelnes Zeichen, z. B. [A], das bedeutet, dass A die Anforderungen erfüllt.

[ - ]: Bereich, z. B. [A-Z], was bedeutet, dass A, B, C bis Z alle die Anforderungen erfüllen.

.: Alle Zeichen sind Einzelzeichen.

*: enthält Zeichen und kann 0 lang sein.

Codebeispiel:

Beispiel 1: Suchen Sie im aktuellen Verzeichnis nach den Dateien mit dem Präfix „test“, die die Zeichenfolge „test“ enthalten, und drucken Sie die Zeilen aus, die die Zeichenfolge enthalten. In diesem Fall können Sie den folgenden Befehl verwenden:

grep-Testtest*

Ausgabe:

testfile1:Dies ist eine Linux-Testdatei! #Listen Sie die Zeilen in testfile1 auf, die das Zeichen test enthalten. testfile_2:Dies ist eine Linux-Testdatei! #Listen Sie die Zeilen in testfile_2 auf, die das Zeichen test enthalten. testfile_2:Linux-Test #Listen Sie die Zeilen in testfile_2 auf, die das Zeichen test enthalten.

Beispiel 2: Rückwärtssuche. Mit dem Parameter „-v“ kann der Inhalt der Zeilen ausgedruckt werden, die die Bedingungen nicht erfüllen. Suchen Sie die Zeile, die nicht test enthält, in der Datei, deren Dateiname test enthält

grep -v test *test*

Ausgabe:

Testdatei1: helLinux! 

testfile1:Lin ist ein freies Unix-ähnliches Betriebssystem. 

testdatei1:Lin 

testfile_1:HALLO LINUX! 

testfile_1:LINUX IST EIN FREIES BETRIEBSSYSTEM VOM UNIX-TYP. 

testfile_1:DIES IST EINE LINUX-TESTDATEI! 

testfile_2:HALLO LINUX! 

testfile_2:Linux ist ein freies Unix-ähnliches Betriebssystem.

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung der grep- und egrep-Befehle in Linux
  • Grep-Befehl zum Abgleichen von Tabulatoren und Zeilenumbrüchen in Linux
  • Linux verwendet grep zum Filtern mehrerer Bedingungen und allgemeine grep-Filterbefehle
  • So rufen Sie Dateiinhalte mit dem Grep-Befehl in Linux ab
  • Allgemeine Befehle und Unterschiede zwischen find und grep in Linux
  • Einführung in die grundlegenden Grep-Befehle zur Textfilterung unter Linux (5)
  • Detaillierte Erklärung des Linux-Grep-Befehls
  • Tiefgreifendes Verständnis des Grep-Befehls in Linux
  • Verwendung des Grep-Befehls unter Linux
  • Detaillierte Erklärung zur Verwendung des Grep-Befehls in Linux

<<:  Detaillierte Schritte zur Installation von Mysql5.7.19 mit yum auf Centos7

>>:  Detaillierte Erklärung zur Erstellung von Schießspielen mit CocosCreator

Artikel empfehlen

Implementierung der Webpack-Codefragmentierung

Inhaltsverzeichnis Hintergrund CommonsChunkPlugin...

JavaScript MouseEvent-Fallstudie

Mausereignis Wenn die Maus eine bestimmte Operati...

So lösen Sie das Problem der automatischen Paketaktualisierung im Debian-System

Ich weiß nicht, wann es angefangen hat, aber jede...

Detaillierte Schritte zum Speichern von Emoji-Ausdrücken in MySQL

Verursacht durch: java.sql.SQLException: Falscher...

HTML-Implementierung eines einfachen Rechners mit detaillierten Ideen

Code kopieren Der Code lautet wie folgt: <!DOC...

Detaillierte Erläuterung der langsamen MySQL-Protokollabfrage

Langsame Protokollabfragefunktion Die Hauptfunkti...

Detaillierte Erläuterung der Wissenspunkte zu Linux Netfilter/Iptables

Netzfilter Netfilter ist ein Paketverarbeitungsmo...

Beispiel für ein JavaScript-Meldungsfeld

In JavaScript können drei Arten von Meldungsfelde...

So verwenden und begrenzen Sie Requisiten in React

Die Requisiten der Komponente (Requisiten sind ei...

Eine kurze Einführung in MySQL InnoDB ReplicaSet

Inhaltsverzeichnis 01 Einführung in InnoDB Replic...

Designperspektive Technologie ist ein wichtiges Kapital der Designfähigkeit

Ein Designsoldat fragte: „Kann ich nur reines Des...

Detaillierte Erläuterung der Docker Swarm-Dienstorchestrierungsbefehle

1. Einleitung Docker verfügt über ein Orchestrier...