Die häufigste Grep -Syntax

Die häufigste Grep -Syntax
Unter Linux, Grep ist eines der vielen Werkzeuge, die vorinstalliert sind. Es ist eigentlich ein Akronym, das für „Globaler regulärer Ausdrucksdruck steht." Der Grep Der Befehl kann nach einer Zeichenfolge in Dateien suchen, die durch den regulären Ausdruck beschrieben werden. Wenn ein Match gefunden wird, Grep druckt das Ergebnis in der Konsole.

In diesem Leitfaden werden wir uns kurz an einige der häufigsten Implementierungen dessen ansehen Grep Befehl.

Der Grep Befehlsstruktur

Jeder GREP -Befehl hat die folgenden Komponenten.

$ grep

Gemeinsam Grep Syntaxe

Suche nach einer Zeichenfolge in einer Datei

Dies ist die einfachste Art, die zu verwenden Grep Befehl. Im folgenden Beispiel, Grep Suche nach dem Begriff „DKMS“ (ohne Zitate) in der Datei passende Verpackungen installiert.txt (Enthält alle im System installierten APT -Pakete).

$ grep "DKMS" -Packages-installiert.txt

Es wird empfohlen, doppelte Zitate („“) zu verwenden, um eine Zeichenfolge anzugeben, da eine Zeichenfolge möglicherweise Sonderzeichen und Whitespaces enthält.

Suche nach einer Zeichenfolge in mehreren Dateien

Der Grep Der Befehl kann auch die Suchvorgänge auf mehreren Dateien ausführen. Sie müssen lediglich die Dateien nacheinander angeben.

$ grep "dkms" pape-packages-installiert-1.TXT APT-Packages-installiert-2.txt

Anstatt die Dateien manuell anzugeben.

$ grep "dkms" pape-packages-installiert-*.txt

Was ist, wenn wir die Suche nach allen Dateien im aktuellen Verzeichnis ausführen möchten?? Stellen Sie einfach den Wildcard -Ausdruck fest, um jede Datei im aktuellen Verzeichnis anzuzeigen.

$ grep "dkms" *

Wie wir sehen können, Grep Fand alle Übereinstimmungen in den Textdateien, aber die Verzeichnisse nicht gut behandelt. Dies führt perfekt zum nächsten Punkt.

Suchen von Unterverzeichnissen

Standardmäßig, Grep Suchen Sie die Unterverzeichnisse nicht nach Übereinstimmungen. Wenn Sie dies tun möchten, müssen Sie es sagen, indem Sie die Flagge hinzufügen. “-R.”

Versuchen Sie, die vorherige Suche erneut mit diesem neuen Trick durchzuführen.

$ grep -r "dkms" *

Beachten Sie, dass Angesicht, Grep kann einige Zeit dauern. Auf dem Bildschirm wird es so aussehen, als wäre es gefroren. Also, keine Panik, wenn Sie ähnliche Situationen ausgesetzt sind.

Überprüfen Sie die Zeilennummer des Spiels

Mit der Zeilennummer der Grep Match kann ein Glücksfall sein. Verwenden Sie die Flagge „-n.”

$ grep -n "dkms" *.txt

Anzahl der Übereinstimmungen zählen

Der Grep Der Befehl kann die Anzahl der Übereinstimmungen im Suchergebnis zählen. Verwenden Sie dazu die Flagge “-l.”

$ grep -c "dkms" *.txt

Hier, Grep Zeigt die Anzahl der Übereinstimmungen für jede durchsuchte Datei an.

Drucken Sie den Namen der passenden Dateien aus

Manchmal möchten Sie wissen, welche Dateien mit dem Muster übereinstimmen, das ohne das Suchergebnis angegeben wurde. Wenn dies der Fall ist, verwenden Sie die Flagge „-l.”

$ grep -l "dkms" *.txt

Drucken Sie Zeilen vor und nach der passenden Zeichenfolge

Standardmäßig, Grep Drucken Sie die Zeile, die die angegebene Zeichenfolge findet. Wir können jedoch die Ausgabe kalibrieren, um ein paar Zeilen vor und/oder nach der String -Übereinstimmung zu drucken.

Grep druckt die passende Zeichenfolge zusammen mit 5 vorherigen Zeilen auf der Konsole im folgenden Befehl dank der Flag „-B“ im folgenden Befehl.

$ grep -b 5 "DKMS" APT-Packages-installiert-1.txt

In ähnlicher Weise können wir Grep auch sagen, dass wir mehrere Zeilen drucken sollen, nachdem wir die passende Zeichenfolge gefunden haben. Dazu verwenden wir die Flagge „-a.”Im folgenden Beispiel, Grep druckt 5 Zeilen nach dem Finden des Spiels.

$ grep -a 5 "dkms" aptpackages-installed-1.txt

Jetzt ist es Zeit, beide Merkmale zu kombinieren.

$ grep -a 5 -B 5 "DKMS" -Packages-installierte 1.txt

Der Befehl wird auf diese Weise unnötig verwirrend. Wir können Grep sagen. Dazu verwenden wir die Flagge „-C.”

$ grep -c 5 "dkms" Apt-Packages-installiert-1.txt

Beachten Sie, dass die Ausgabe um die passende Zeichenfolge symmetrisch ist, wenn Sie das Flag „-c“ verwenden. Wenn Sie eine asymmetrische Anzahl von Linien wünschen, müssen Sie sie mit den Flags „-A“ und „-B“ separat beschreiben.

Einschränkung Grep Ausgang

Wenn Sie mit einer großen Textdatei arbeiten, die viele Instanzen des Suchmusters enthält, dann der dann die Grep Die Ausgabe druckt einen großen Teil der Ausgabe mit viel Chaos. Zum Beispiel,

$ grep "installiert" papierverpackungsinstalliert-1.txt

Wir können Grep sagen, dass er die Anzahl der Linien einschränken soll, die in einer solchen Situation ausgegeben werden dürfen. Dazu verwenden wir die Flagge „-M.”Der Befehl wird so aussehen:

$ grep -m 10 "installiert" in der Verpackung installiert-1.txt

Hier, Grep Drucken Sie nur die ersten 10 der passenden Muster.

Verwendung Grep mit Stdout

Der Stdout ist ein Dateistrom. Es ist ein starkes Merkmal von Muscheln (wie Bash). Es handelt sich um eine temporäre Datei, die die Ausgabe des vorherigen Befehls enthält. Wenn der nächste Befehl ausgeführt wird, der Wert von Stdout ist aktualisiert. Lerne mehr über Stdin, Stderr, Und Stdout in Bash.

Der Grep -Befehl kann auch mit funktionieren Stdout Inhalt. Sie können beispielsweise die Ausgabe eines Befehls für die Ausgabe für die Pfeife bringen Grep an etwas arbeiten.

Im folgenden Beispiel gibt der Befehl APT die Liste aller im System installierten Pakete zurück. Wir machen den Ausgang zu Grep und suchen Sie nach dem Begriff „DKMS“ in der Ausgabe. Entsprechend GrepDas Standardverhalten wird alle Zeilen ausdrucken, die die Zeichenfolge enthalten.

$ APT -Liste -installiert | Grep "DKMS"

Die Ausgabe warnt möglicherweise, dass die Verwendung von APT in Skripten nicht empfohlen wird, da keine stabile CLI -Schnittstelle bietet. Erfahren Sie mehr über den APT -Paketmanager auf Ubuntu.

Abschließende Gedanken

Dies ist eine kurze Anleitung zu einigen der häufigsten Verwendungen der Grep Befehl. Zum Beherrschen Grep, Es wird empfohlen, diesen Mega -Leitfaden zu überprüfen, in dem 30 Grep -Beispiele demonstrieren,.

Die Hilfe Seite von Grep druckt eine kurze Seite aller verfügbaren Optionen.

$ grep -HELP

Die Mann Seite von Grep Enthält alle Optionen mit detaillierten Erklärungen.

$ MAN GREP

Für Anfänger dieser Leitfaden auf Grep Der Befehl in Linux ist ein ausgezeichneter Ausgangspunkt.

Happy Computing!