grep

Linux egrep-Befehl mit Beispielen

Linux egrep-Befehl mit Beispielen
Der egrep-Befehl gehört zur Familie des grep-Befehls, der für die Mustersuche unter Linux verwendet wird. Wenn Sie den grep-Befehl verwendet haben, funktioniert egrep genauso wie grep -E (grep Extended regex'). Egrep scannt eine bestimmte Datei Zeile für Zeile und gibt die Zeile(n) aus, die die Suchzeichenfolge/den regulären Ausdruck enthalten. In diesem Artikel erklären wir 15 nützliche Beispiele der egrep-Befehle, die Neulingen und sogar Experten helfen, sinnvolle Suchen in Linux durchzuführen. Wir haben diese Beispiele auf einem Debian 10 Buster-System durchgeführt, können aber auf den meisten Linux-Distributionen leicht repliziert werden.

Beispiel 1: Suchen nach einer bestimmten Zeichenfolge in einer Datei

Dies ist die häufigste Verwendung des egrep-Befehls. Was Sie tun, ist, dass Sie eine Zeichenfolge angeben, nach der Sie suchen möchten, und den Dateinamen, in dem Sie diese Zeichenfolge suchen möchten. Das Ergebnis zeigt dann die gesamte Zeile mit der gesuchten Zeichenfolge an.

Syntax:

$ egrep „search_string“ Dateiname

Beispiel:

$ egrep Debian-Beispieldatei.TXT

In diesem Beispiel habe ich in der angegebenen Textdatei nach dem Wort „debian“ gesucht. Sie können sehen, wie die Ergebnisse die gesamte Zeile anzeigen, die das Wort „debian“ enthält:

Beispiel 2: Suchen nach einer bestimmten Zeichenfolge in mehreren Dateien

Mit dem Befehl egrep können Sie unter mehreren Dateien im selben Verzeichnis nach einer Zeichenfolge suchen. Sie müssen nur etwas genauer sein, wenn Sie ein "Muster" für die gesuchten Dateien bereitstellen. Dies wird an dem Beispiel, das wir vorstellen werden, deutlicher.

Syntax:

$ egrep "search_string" filename_pattern

Beispiel:

Hier suchen wir nach dem Wort „debian“ in allen .txt-Dateien, indem Sie das Dateinamenmuster wie folgt angeben:

$ egrep „debian“ *.TXT

Der Befehl hat alle Zeilen ausgegeben, zusammen mit den Dateinamen, die das Wort „debian“ aus allen .txt-Dateien im aktuellen Verzeichnis.

Beispiel 3: Rekursives Durchsuchen des Strings im gesamten Verzeichnis

Wenn Sie in allen Dateien eines Verzeichnisses und seiner Unterverzeichnisse nach einer Zeichenfolge suchen möchten, können Sie dies mit dem Flag -r mit dem Befehl egrep tun.

Syntax:

$ egrep -r "Suchzeichenfolge" *

Beispiel:

In diesem Beispiel suche ich nach dem Wort „sample“ in den Dateien des gesamten aktuellen (Downloads) Verzeichnisses.

$ egrep -r "Beispiel" *

Die Ergebnisse enthalten alle Zeilen zusammen mit den Dateinamen, die das Wort „sample“ aus allen Dateien im Downloads-Verzeichnis und seinen Unterverzeichnissen enthalten contain.

Beispiel 4: Durchführen einer Suche ohne Beachtung der Groß-/Kleinschreibung

Mit dem Flag -i können Sie den egrep-Befehl verwenden, um die Ergebnisse basierend auf einer Suchzeichenfolge auszugeben, ohne sich um deren Groß-/Kleinschreibung kümmern zu müssen.

Syntax:

$ egrep -i "search_string" Dateiname

Beispiel:

Hier suche ich nach dem Wort „debian“ und möchte, dass die Ergebnisse alle Zeilen aus der Datei anzeigen, die das Wort „debian“ oder „Debian“ enthalten, unabhängig von der Groß-/Kleinschreibung.

$ egrep -i "search_string" Dateiname

Sie können sehen, wie mir das Flag -i dabei geholfen hat, alle Zeilen, die die Suchzeichenfolge enthalten, durch eine Suche mit "unempfindlicher Groß-/Kleinschreibung" abzurufen.

Beispiel 5: Suche nach einer Zeichenfolge als vollständiges Wort und nicht als Teilzeichenfolge

Wenn Sie normalerweise über egrep nach einer Zeichenfolge suchen, werden alle Wörter, die die Zeichenfolge enthalten, als Teilzeichenfolge ausgegeben. Wenn Sie beispielsweise nach der Zeichenfolge „on“ suchen, werden alle Wörter gedruckt, die die Zeichenfolge „on“ enthalten, wie z. B. „on“, „nur“, „monitor“, „klonen“ usw. Wenn Sie möchten, dass die Ergebnisse nur das Wort „on“ als vollständiges Wort und nicht als Teilzeichenfolge anzeigen, können Sie das Flag -w mit egrep verwenden.

Syntax:

$ egrep -w „search_string“ Dateiname

Beispiel:

Hier suche ich in einer Beispieldatei nach dem String „on“:

$ egrep -i „on“ Beispieldatei.TXT

Sie können in der obigen Ausgabe sehen, dass sie auch das Wort „nur“ enthält. Dies ist jedoch nicht das, was ich will, da ich ausschließlich nach dem Wort „an“ suche. Dies ist der Befehl, den ich stattdessen verwenden werde:

$ egrep -iw „on“ Beispieldatei.TXT

Jetzt enthalten meine Suchergebnisse nur die Zeilen, die das Wort „on“ als ganzes Wort enthalten.

Beispiel 6: Nur die Dateinamen drucken, die die Zeichenfolge . enthalten

Manchmal möchten wir nur die Dateinamen abrufen, die einen bestimmten String enthalten, anstatt die Zeilen zu drucken, die ihn enthalten. Dies kann mit dem Flag -l (Kleinbuchstabe L) mit dem egrep-Befehl erfolgen.

Syntax:

$ egrep -l "search_string" filename_pattern

Beispiel:

Hier suche ich den String „sample“ in allen .txt-Dateien im aktuellen Verzeichnis:

$ egrep -l Probe *.TXT

Die Suchergebnisse geben nur den Namen der Dateien aus, die die angegebene Zeichenfolge enthalten.

Beispiel 7: Nur die Suchzeichenfolge aus einer Datei drucken

Anstatt die gesamte Zeile zu drucken, die die Suchzeichenfolge enthält, können Sie den egrep-Befehl verwenden, um die Zeichenfolge selbst auszugeben. Die Zeichenfolge wird so oft gedruckt, wie sie in der angegebenen Datei vorkommt.

Syntax:

$ egrep -o "search_string" Dateiname

Beispiel:

In diesem Beispiel suche ich in meiner Datei nach dem Wort „This“.

$ egrep -o Diese Beispieldatei_.TXT

Hinweis: Diese Verwendung des Befehls ist praktisch, wenn Sie nach einer Zeichenfolge suchen, die auf einem Muster eines regulären Ausdrucks basiert. Wir werden reguläre Ausdrücke in einem der kommenden Beispiele ausführlich erklären.

Beispiel 8: Anzeigen von n Zeilen vor, nach oder um die Suchzeichenfolge

Manchmal ist es sehr wichtig, den Kontext in einer Datei zu kennen, in der eine bestimmte Zeichenfolge verwendet wird. Der egrep ist in dem Sinne praktisch, dass er verwendet werden kann, um die Zeile anzuzeigen, die den Suchstring enthält, und auch eine bestimmte Anzahl von Zeilen davor, danach und um ihn herum.

Dies ist die Beispieltextdatei, die ich verwenden werde, um die kommenden Beispiele zu erklären:

N Zeilenanzahl Nach dem Suchstring:

Wenn Sie das A-Flag wie folgt verwenden, wird die Zeile mit der Suchzeichenfolge und N Zeilen danach angezeigt:

$ egrep -A Dateiname "search_string"

Beispiel:

$ egrep -A 2 "Beispiel"-Beispieldatei.TXT

N Zeilenanzahl Vor dem Suchstring:

Wenn Sie das B-Flag wie folgt verwenden, wird die Zeile mit der Suchzeichenfolge und N Zeilen davor angezeigt:

$ egrep -B Dateiname "search_string"

Beispiel:

$ egrep -B 2 "Beispiel"-Beispieldatei.TXT

N Zeilenanzahl Vor dem Suchstring:

Wenn Sie das C-Flag wie folgt verwenden, wird die Zeile angezeigt, die die Suchzeichenfolge enthält, und die Anzahl N von Zeilen davor und danach:

$ egrep -C Dateiname "search_string"

Beispiel:

$ egrep -C 2 "Beispiel"-Beispieldatei.TXT

Beispiel 9: Übereinstimmender regulärer Ausdruck in Dateien

Der egrep-Befehl wird leistungsfähiger, wenn Sie in einer Datei nach regulären Ausdrücken statt nach festen Suchzeichenfolgen suchen search.

Syntax:

$ egrep "RegularExpressions" Dateiname

Lassen Sie uns erklären, wie Sie reguläre Ausdrücke in Ihrer egrep-Suche verwenden können:

Wiederholungsoperator Benutzen
? Das vorherige Element vor ? ist optional und wird maximal einmal abgeglichen

* Das vorherige Element vor * wird null oder öfter abgeglichen
+ Das vorherige Element vor + wird ein- oder mehrmals abgeglichen
n Das vorhergehende Element wird n-mal genau gefunden.
n, Das vorherige Element wird n- oder mehrmals gefunden match
,m Das vorherige Element wird maximal m-mal abgeglichen
n, m Das vorhergehende Element wird mindestens n-mal, aber nicht mehr als m-mal gefunden

Beispiel:

Im folgenden Beispiel werden die Zeilen mit dem folgenden Ausdruck abgeglichen:

beginnend mit „Gnome“ und endend mit „Programme“

Beispiel 10: Hervorheben des Suchstrings

Wenn Sie die Umgebungsvariable GREP_OPTIONS wie folgt festlegen, erhalten Sie Ihre Ausgabe mit der in den Ergebnissen hervorgehobenen Suchzeichenfolge/dem Suchmuster:

$ sudo export GREP_OPTIONS='--color=auto' GREP_COLOR='100;8'

Sie können dann auf eine beliebige Weise nach der Zeichenfolge suchen, die wir in den Beispielen dieses Artikels beschrieben haben.

Beispiel 11: Durchführen der Invert-Suche in einer Datei

Mit invertierter Suche meinen wir, dass der egrep-Befehl alles in der Datei ausgibt, außer den Zeilen, die die Suchzeichenfolge enthalten. Wir werden die folgende Beispieldatei verwenden, um die invertierte Suche durch egrep . zu erklären. Wir haben den Inhalt der Datei mit dem Befehl cat ausgedruckt:

Syntax:

$ egrep -v "search_string" Dateiname

Beispiel:

In der erwähnten Beispieldatei möchten wir die Zeile mit dem Wort „two“ in der Ausgabe weglassen, daher verwenden wir den folgenden Befehl:

$ egrep -v "zwei" Beispieldatei_.TXT

Sie können sehen, wie die Ausgabe alles aus der Beispieldatei enthält, mit Ausnahme der zweiten Zeile, die die Suchzeichenfolge „two“ enthielt.

Beispiel 12: Durchführen einer invertierten Suche basierend auf mehreren Kriterien/Suchmustern

Mit dem Flag -v können Sie den egrep-Befehl auch dazu bringen, eine invertierte Suche basierend auf mehr als einer Suchzeichenfolge/einem Suchmuster durchzuführen.

Wir werden dieselbe Beispieldatei verwenden, die wir in Beispiel 11 erwähnt haben, um dieses Szenario zu erklären.

Syntax:

$ egrep -v -e "Suchzeichenfolge"/"Muster" -e "Suchzeichenfolge"/"Muster"
… Dateiname

Beispiel:

In der erwähnten Beispieldatei möchten wir die Zeile(n) mit den Wörtern „eins“ und „zwei“ in der Ausgabe weglassen, daher verwenden wir den folgenden Befehl:

$ egrep -v -e „eins“ -e „zwei“ Beispieldatei_.TXT

Wir haben zwei Wörter angegeben, die mit dem Flag -e weggelassen werden können, daher sieht die Ausgabe wie folgt aus:

Beispiel 13: Die Anzahl der Zeilen drucken, die der Suchzeichenfolge entsprechen

Anstatt die gesuchte Zeichenfolge aus der Datei oder die Zeilen, die sie enthalten, zu drucken, können Sie den egrep-Befehl verwenden, um die Anzahl der Zeilen zu zählen und auszudrucken, die mit der Zeichenfolge übereinstimmen. Dieser Zähler kann mit dem Flag -c mit dem egrep-Befehl abgerufen werden.

Syntax:

$ egrep -c "search_string" Dateiname

Beispiel:

In diesem Beispiel verwenden wir das Flag -c, um die Anzahl der Zeilen zu zählen, die das Wort "This" in unserer Beispieldatei enthalten:

$ egrep -c "Dieser" Dateiname

Sie können hier auch die invertierte Suchfunktion verwenden, um die Anzahl der Zeilen zu zählen und auszudrucken, die die Suchzeichenfolge nicht enthalten: 

$ grep -v -c "search_string" Dateiname

Beispiel 14: Anzeigen der Zeilennummer, in der die Zeichenfolge übereinstimmt

Mit dem Flag -n können Sie den egrep-Befehl dazu bringen, die übereinstimmende Zeile zusammen mit der Zeilennummer auszugeben, die die Suchzeichenfolge enthält.

Syntax:

$ grep -n "search_string" Dateiname

Beispiel:

$ grep -n "Diese" Beispieldatei_.TXT

Sie können sehen, wie die Zeilennummern in den Suchergebnissen angezeigt werden.

Beispiel 15: Anzeige der Position in der Datei, an der der Suchbegriff übereinstimmt

Wenn Sie wissen möchten, an welcher Stelle in der Datei der Suchstring existiert, können Sie das Flag -b mit dem egrep-Befehl verwenden use.

$ grep -o -b "search_string" Dateiname

Beispiel:

$ grep -o -b "Diese" Beispieldatei_.TXT

Die Suchergebnisse geben den Byte-Offset der Datei aus, in der das Suchwort vorhanden ist.Dies war eine detaillierte Verwendung des egrep-Befehls. Durch die Verwendung einer Kombination der in diesem Artikel erläuterten Flags können Sie aussagekräftigere und komplexere Suchen in Ihren Dateien durchführen.

So ändern Sie die linke und rechte Maustaste auf einem Windows 10-PC
Es ist ganz normal, dass alle Computer-Maus-Geräte ergonomisch für Rechtshänder gestaltet sind. Es gibt aber auch Mausgeräte, die speziell für Linkshä...
Emulieren Sie Mausklicks, indem Sie den Mauszeiger mit der klicklosen Maus in Windows 10 bewegen
Die Verwendung einer Maus oder Tastatur in der falschen Haltung bei übermäßiger Nutzung kann zu vielen gesundheitlichen Problemen führen, einschließli...
Fügen Sie mit diesen kostenlosen Tools Mausgesten zu Windows 10 hinzu
In den letzten Jahren haben sich Computer und Betriebssysteme stark weiterentwickelt. Es gab eine Zeit, in der Benutzer Befehle verwenden mussten, um ...