grep

Grep für mehrere Patterns oder Strings

Grep für mehrere Patterns oder Strings
Global Regular Expression Print oder Grep ist ein leistungsstarkes Dienstprogramm, das im Linux-Betriebssystem verwendet wird. Mit grep können Sie nach Dateien mit unterschiedlichen Mustern oder Zeichenfolgen suchen, indem Sie Einschränkungen anwenden. Die Grep-Funktion verwendet eine oder mehrere Eingabedateien, um in Verzeichnissen oder Unterverzeichnissen zu suchen. Um nach zahlreichen Mustern zu suchen, verwenden wir den ODER-Operator. Dieser Operator wird verwendet, um die im Befehl geschriebenen Muster zu trennen. Der Änderungsoperator „|“ wird mit dem Backslash verwendet. Die Syntax für die Suche nach verschiedenen regulären Ausdrücken lautet wie folgt:

Syntax

$ grep 'Muster1\|Muster2' Dateiname

Ein regulärer Ausdruck wird immer in einem einfachen Anführungszeichen geschrieben. Zwei Namen werden mit Backslash und Änderungsoperator getrennt. Der Befehl wird mit dem Dateinamen beendet. Bei grep rekursiv wird das Verzeichnis oder der ganze Pfad anstelle eines einzelnen Dateinamens verwendet.

Voraussetzung

In diesem Artikel lernen wir die Funktionalität von grep bei der Suche nach mehreren Mustern und Strings kennen. Dazu muss das Linux-Betriebssystem auf Ihrer virtuellen Box laufen. Sie müssen es auf Ihrem System installieren. Nach der Konfiguration haben Sie Zugriff auf alle Anwendungen. Nachdem Sie sich durch Eingabe eines Passworts beim Benutzer angemeldet haben, gehen Sie zur Terminal-Shell-Befehlszeile, um fortzufahren.

Suche nach mehreren Mustern in einer Datei mit Grep

Wenn wir in einer bestimmten Datei nach mehreren Mustern oder Zeichenfolgen suchen möchten, verwenden Sie die grep-Funktionalität, um innerhalb einer Datei mit Hilfe von mehr als einem Eingabewort im Befehl zu sortieren. Wir verwenden '\|' Operatoren zur Trennung zweier Muster in einem Befehl.

$ grep 'technical\|job'-Dateia.TXT

Der Befehl stellt dar, wie grep funktioniert. Beide genannten Dateien werden in filea . durchsucht.TXT. Gesuchte Wörter werden im gesamten Text der Ausgabe hervorgehoben.

Um nach mehr als zwei Wörtern zu suchen, fügen wir sie auf die gleiche Weise hinzu.

$ grep 'graphic\|photoshop\|posters' fileb.TXT

Durchsuchen Sie mehrere Zeichenfolgen, indem Sie die Groß-/Kleinschreibung ignorieren

Um das Konzept der Groß-/Kleinschreibung in der grep-Funktion in Linux zu verstehen, betrachten Sie das folgende Beispiel. Zwei Befehle funktionieren auf grep. Einer ist mit '-i' und der andere ist ohne. Dieses Beispiel demonstriert die Unterschiede zwischen den Befehlen. Das erste zeigt an, dass in einer bestimmten Datei nach zwei Wörtern gesucht wird. Es beginnt jedoch, wie im Befehl „Aqsa“ angegeben, mit dem Großbuchstaben A. Daher wird er nicht hervorgehoben, da dieser Text in einer bestimmten Datei in Kleinbuchstaben geschrieben ist.

$ grep 'Aqsa\|Schwester'-Datei20.TXT

Es wird nur das Wort Schwester berücksichtigt, das in der Ausgabe zu sehen ist.

Im zweiten Beispiel haben wir die Groß-/Kleinschreibung ignoriert, indem wir das Flag „-I“ verwendet haben. Diese Funktion sucht nach beiden Wörtern und die Ausgabe wird hervorgehoben. Unabhängig davon, ob das Wort 'Aqsa' in Großbuchstaben geschrieben ist oder nicht, grep sucht nach derselben Übereinstimmung im Text in einer Datei. Beide Befehle sind also auf ihre Weise hilfreich.

$ grep -I 'Aqsa\|Schwester'-Datei20.TXT

Zählen mehrerer Übereinstimmungen in einer Datei

Die Zählfunktion hilft beim Zählen des Vorkommens eines Wortes oder von Wörtern in einer bestimmten Datei. Wenn Sie zum Beispiel wissen möchten, welche Fehler im System auftreten. Das Detail wird in der Protokolldatei aufgezeichnet. Um diese Informationen in einem bestimmten Ordner zu verwalten, schreiben Sie den Pfad der Ordner. Dieses Beispiel zeigt, dass 71 Fehler in Protokolldateien aufgetreten sind.

Genaue Übereinstimmungen in einer Datei suchen

Wenn Sie eine genaue Übereinstimmung in den Dateien Ihres Systems finden möchten, müssen Sie das Flag „-w“ verwenden, um es genau zu sortieren. Wir haben ein einfaches und umfassendes Beispiel zitiert. Betrachten Sie im folgenden Beispiel eine Suche ohne „-w“, dieser Befehl bringt beide Wörter als Übereinstimmung mit der angegebenen Eingabe. Aber mit der Verwendung des Flags „-w“ wird die Suche eingeschränkt, da die Eingabewörter nur mit der ersten Zeichenfolge übereinstimmen. Das zweite Wort wird nicht hervorgehoben, da „-w“ eine genaue Übereinstimmung mit dem Muster ermöglicht.

$ -iw 'hamna\|house'-Datei21.TXT

Hier wird -I auch verwendet, um die Groß-/Kleinschreibung bei der Textsuche zu entfernen.

Wie auf dem Foto zu sehen, sind die Ergebnisse nicht die gleichen. Der erste Befehl bringt alle zugehörigen Daten mit ganzen Strings, während der zweite Befehl zeigt, wie genaue Daten durch grep bei der Suche nach mehreren Strings übereinstimmen.

Grep für mehr als ein Muster in einem bestimmten Dateierweiterungstyp

Die Suche erfolgt in allen Dateien. Es liegt an Ihnen, wenn Sie nach dem Dateinamen suchen. Es wird nur in bestimmten Dateien gesucht. Durch die Angabe einer Dateierweiterung werden die Daten jedoch in allen Dateien mit derselben Erweiterung durchsucht. Es gibt zwei verschiedene Beispiele, um das zugehörige Ergebnis darzustellen. Betrachtet man das erste Beispiel, werden Fehlerdateien in allen Dateien des .Log-Erweiterung. „-c“ wird zum Zählen verwendet.

$ grep -c 'Warnung\|Fehler' /var/log/*.Log

Dieser Befehl impliziert, dass die Dateien in allen Dateien des .Log-Erweiterung. Die Anzahl der Übereinstimmungen wird in der Ausgabe angezeigt, um grep mit der spezifischen Dateierweiterung besser zu demonstrieren.

Im zweiten Beispiel haben wir in unseren Linux-Dateien zwei Wörter mit der Erweiterung des Textes verwendet. Alle Daten werden in Form von Zahlen angezeigt. 0 zeigt keine übereinstimmenden Daten an, während andere als 0 anzeigen, dass eine Übereinstimmung existiert.

$ grep -c 'aqsa\|my' /home/aqsayasin/*.TXT

Mehrere Muster rekursiv in einer Datei durchsuchen

Standardmäßig wird das aktuelle Verzeichnis verwendet, wenn im Befehl kein Verzeichnis erwähnt wird. Wenn Sie im Verzeichnis Ihrer Wahl suchen möchten, dann müssen Sie dies erwähnen. Der Operator „-r“ wird rekursiv für grep verwendet./home/aqsayasin/ zeigt den Dateipfad an, während *.txt zeigt die Erweiterung an. Textdateien werden das Ziel von grep sein, um rekursiv zu suchen.

$ grep -R 'technisch\|kostenlos' /home/aqsayasin/*.TXT

Die gewünschte Ausgabe wird im Ergebnis hervorgehoben und zeigt die Existenz dieser Wörter an.

Fazit

In dem oben erwähnten Artikel haben wir verschiedene Beispiele zitiert, um es einem Benutzer zu erleichtern, die Funktionsweise von Befehlen zum Durchsuchen mehrerer Muster unter Linux zu verstehen. Dieser Leitfaden hilft Ihnen, Ihr vorhandenes Wissen zu erweitern.

So erfassen und streamen Sie Ihre Gaming-Sitzung unter Linux
In der Vergangenheit galt das Spielen von Spielen nur als Hobby, aber mit der Zeit verzeichnete die Spieleindustrie ein enormes Wachstum in Bezug auf ...
Beste Spiele zum Spielen mit Handtracking
Oculus Quest hat kürzlich die großartige Idee des Hand-Trackings ohne Controller vorgestellt. Mit einer ständig steigenden Anzahl von Spielen und Akti...
So zeigen Sie OSD-Overlay in Vollbild-Linux-Apps und -Spielen an
Das Spielen von Spielen im Vollbildmodus oder die Verwendung von Apps im ablenkungsfreien Vollbildmodus kann Sie von relevanten Systeminformationen ab...