Zeigen Sie Zeilen vor und nach Match über Grep

Zeigen Sie Zeilen vor und nach Match über Grep

GREP wurde in Linux -Systemen häufig verwendet, wenn sie an einigen Dateien arbeiten, nach einem bestimmten Muster gesucht haben, und vieles mehr. Dieses Mal verwenden wir den Befehl grep, um die Zeilen vor und nach dem angepassten Keyword anzuzeigen, das in einer bestimmten Datei verwendet wird. Zu diesem Zweck werden wir während unseres Tutorial Guide das Flag „-a“, „-b“ und „-c“ verwenden. Sie müssen also jeden Schritt ausführen, um ein besseres Verständnis zu erhalten. Stellen Sie sicher, dass Sie Ubuntu 20 haben.04 Linux -System installiert.

Zunächst müssen Sie Ihr Linux Command-Line-Terminal öffnen, um an Grep zu arbeiten. Sie befinden sich derzeit im Home-Verzeichnis Ihres Ubuntu-Systems direkt nach der Öffnung des Befehlszeilenterminals. Versuchen Sie also, alle Dateien und Ordner im Home -Verzeichnis Ihres Linux -Systems mit dem folgenden LS -Befehl aufzulisten, und Sie erhalten alle. Sie können sehen, wir haben einige Textdateien und einige Ordner, die darin aufgeführt sind.

ls

Beispiel 01: Verwenden Sie '-a' und '-b'

Aus den obigen Textdateien werden wir uns einige davon ansehen und versuchen, den GREP-Befehl auf sie anzuwenden. Öffnen wir die Textdatei „Eine.TXT ”mit dem beliebten Befehl„ Cat “als unter Verwendung:

$ cat eins.txt

Wir werden zunächst einige bestimmte Wörter übereinstimmen, die in dieser Textdatei mit dem GREP -Befehl wie unten übereinstimmen. Wir suchen nach dem Wort "wir" in der Textdatei "eins".txt ”mit Grep -Befehl. Die Ausgabe zeigt zwei Zeilen aus der Textdatei mit „wir“ in ihnen.

$ grep wir eins.txt

In diesem Beispiel werden wir also die Zeilen vor und nach dem spezifischen Wort übereinstimmen in einigen Textdateien. Verwenden Sie also dieselbe Textdatei “eins.txt ”Wir haben das Wort„ wir “übereinstimmen, während wir die drei Zeilen wie unten angezeigt haben. Die Flagge "-B" steht für "vor" für "vor". Die Ausgabe zeigt nur 2 Zeilen vor der spezifischen Wortzeile, da die Datei keine mehr Zeilen vor der Zeile eines bestimmten Wortes enthält. Es zeigt auch diese Zeilen, die dieses spezifische Wort in ihnen vorhanden haben.

$ grep -b 3 wir eins.txt

Verwenden wir das gleiche Schlüsselwort "Wir" aus dieser Datei, um die drei Zeilen nach der Zeile mit dem Wort "wir" anzuzeigen. Die Flagge "-a" präsentiert "danach". Die Ausgabe zeigt erneut nur 2 Zeilen, da sie nicht mehr Zeilen in der Datei enthält.

$ grep -a 3 wir eins.txt

Lassen Sie uns also ein neues Schlüsselwort verwenden, das übereinstimmt, und zeigen wir die Zeilen oder Zeilen vor und nach der Zeile an, in der es liegt. Wir haben also das Wort „Can“ verwendet, um abgestimmt zu werden. Die Liniennummern sind in diesem Fall gleich. Die 3 Zeilen nach dem angepassten Wort „Can“ wurden unten mit dem GREP -Befehl angezeigt.

$ grep -a 3 kann eins.txt

Sie können die Ausgabe anzeigen, bevor die Zeilen eines übereinstimmenden Wortes mit dem Schlüsselwort „Can“ angezeigt werden. Im Gegensatz dazu zeigt es nur zwei Zeilen vor der Linie des übereinstimmten Wortes, da es vorher keine Zeilen mehr gibt.

$ grep -b 3 kann eins.txt

Beispiel 02: Verwenden von '-a' und '-b'

Nehmen wir eine weitere Textdatei: „Zwei.TXT “aus dem Home -Verzeichnis aus und zeigen seinen Inhalt mit dem folgenden Befehl„ Cat “an.

$ cat zwei.txt

Zeigen wir 5 Zeilen vor dem Wort „am meisten“ aus der Datei „Two an.txt ”mit dem GREP -Befehl. Die Ausgabe zeigt 5 Zeilen, bevor die Zeile ein bestimmtes Wort enthält.

$ grep -b 5 die meisten zwei.txt

Der Befehl Grep zeigt die 5 Zeilen nach dem Wort „am meisten“ aus der Textdatei „Zwei.txt ”wurde unten angegeben.

$ grep -a 5 die meisten zwei.txt

Ändern wir das zu durchsuchende Schlüsselwort. Wir werden "von" als Schlüsselwort verwenden, um diesmal abgestimmt zu werden. Zeigen Sie die 2 Zeilen vor dem Wort „von“ aus der Textdatei „Zwei an.txt ”kann mit dem folgenden GREP -Befehl erfolgen. Die Ausgabe zeigt zwei Zeilen für das Schlüsselwort „von“, da es zweimal in der Datei befindet. Somit enthält der Ausgang mehr als 2 Zeilen.

$ grep -b 2 von zwei.txt

Zeigen Sie nun die 2 Zeilen der Datei an “zwei.txt ”nach der Zeile, die das Schlüsselwort„ von “enthält. Die Ausgabe zeigt erneut mehr als 2 Zeilen an.

$ grep -a 2 von zwei.txt

Beispiel 03: Verwenden von '-c'

Eine weitere Flagge, „-C“, wurde verwendet, um die Zeilen vor und nach dem angepassten Wort anzuzeigen. Zeigen wir den Inhalt der Datei „Eins an.txt ”mit dem CAT -Befehl.

$ cat eins.txt

Wir wählen „Gesellschaft“ als Schlüsselwort, das abgestimmt ist. Der folgende Grep -Befehl zeigt die 2 Zeilen vor und 2 Zeilen nach der Zeile an, die das Wort „Gesellschaft“ darin enthält. Die Ausgabe zeigt eine Zeile vor der spezifischen Wortzeile und 2 Zeilen danach.

$ grep -c 2 Gesellschaft eins.txt

Lassen Sie uns den Inhalt der Datei sehen “zwei.TXT ”Verwenden des folgenden CAT -Befehls.

$ cat zwei.txt

In dieser Illustration verwenden wir „Gedichte“ als Schlüsselwort, das übereinstimmt. Führen Sie also den folgenden Befehl dafür aus. Die Ausgabe zeigt zwei Zeilen vor und zwei Zeilen nach dem angepassten Wort.

$ grep -c 2 Gedichte zwei.txt

Verwenden wir ein weiteres Schlüsselwort aus der Datei „Zwei.txt ”zu Matching. Diesmal konsumieren wir „Natur“ als Schlüsselwort. Probieren Sie also den folgenden Befehl aus, während Sie "-C" als Flag verwenden, das das Schlüsselwort "Natur" aus der Datei "Two.txt". Diesmal enthält die Ausgabe mehr als zwei Zeilen in der Ausgabe. Da die Datei mehr als einmal das Wort „Natur“ enthält, ist das der Grund dafür. Das Schlüsselwort „Natur“, das an erster Stelle steht, hat zwei Zeilen vor und zwei Zeilen danach. Während der zweite das gleiche Keyword übereinstimmte, hat „Natur“ zwei Zeilen vor ihm, aber es gibt keine Zeilen danach, weil es sich in der letzten Zeile der Datei befindet.

$ grep -c 2 Gedichte zwei.txt

Abschluss

Es ist uns erfolgreich, die Zeilen vor und nach dem spezifischen Wort zu zeigen, während die GREP -Anweisung verwendet wird.