Website-Suche

20 nützliche Beispiele für egrep-Befehle unter Linux


Kurz: In diesem Leitfaden werden wir einige der praktischen Beispiele für den Befehl egrep besprechen. Nachdem Sie diese Anleitung befolgt haben, können Benutzer die Textsuche unter Linux effizienter durchführen. :

Waren Sie schon einmal frustriert, weil Sie die erforderlichen Informationen in den Protokollen nicht finden konnten? Das Extrahieren der erforderlichen Informationen aus einem großen Datensatz ist eine komplexe und zeitaufwändige Aufgabe.

Wirklich herausfordernd wird es, wenn das Betriebssystem nicht die richtigen Tools bereitstellt und Linux kommt, um Sie zu retten. Linux bietet verschiedene Textfilter-Dienstprogramme wie awk, sed, cut usw.

egrep ist jedoch eines der leistungsfähigsten und am häufigsten verwendeten Dienstprogramme für die Textverarbeitung unter Linux, und wir werden einige Beispiele für den Befehl egrep besprechen.

Der Befehl egrep in Linux wird von der Familie des Befehls grep erkannt, der zum Suchen und Abgleichen eines bestimmten Musters in Dateien verwendet wird. Es funktioniert ähnlich wie grep -E (grep Extended regex), aber es sucht meistens eine bestimmte Datei oder sogar Zeilen für Zeilen oder druckt die Zeile in der angegebenen Datei.

Die Syntax des Befehls egrep lautet wie folgt:

$ egrep [OPTIONS] PATTERNS [FILES]

Lassen Sie uns eine Beispieltextdatei mit dem folgenden Inhalt erstellen, um ein Beispiel zu verwenden:

$ cat sample.txt

Hier können wir sehen, dass die Textdatei fertig ist. Lassen Sie uns nun einige gängige Beispiele besprechen, die täglich verwendet werden können.

1. Wie man ein Muster in einer einzigen Datei findet

Beginnen wir mit einem einfachen Beispiel für den Mustervergleich, bei dem wir den folgenden Befehl verwenden können, um in einer sample.txt Datei nach einer professionellen Zeichenkette zu suchen:

$ egrep professionals sample.txt

Hier können wir sehen, dass der Befehl die Zeile ausgibt, die das angegebene Muster enthält.

2. So markieren Sie übereinstimmende Muster in der Datei

Wir können die Ausgabe informativer gestalten, indem wir das übereinstimmende Muster hervorheben. Um dies zu erreichen, können wir die Option --color des Befehls egrep verwenden. Mit dem folgenden Befehl werden beispielsweise die Textprofis in roter Farbe hervorgehoben:

$ egrep --color=auto professionals sample.txt

Hier können wir sehen, dass die gleiche Ausgabe im Vergleich zur vorherigen informativer ist. Außerdem können wir leicht erkennen, dass das Wort Profis zweimal wiederholt wird.

Auf den meisten Linux-Systemen ist die obige Einstellung standardmäßig mit dem folgenden Alias aktiviert:

$ alias egrep='egrep –color=auto'

3. So finden Sie ein Muster in mehreren Dateien

Der Befehl egrep akzeptiert mehrere Dateien als Argument, was es uns ermöglicht, in mehreren Dateien nach einem bestimmten Muster zu suchen. Lassen Sie uns dies anhand eines Beispiels verstehen.

Erstellen Sie zunächst eine Kopie der sample.txt Datei:

$ cp sample.txt sample-copy.txt

Suchen Sie nun in beiden Dateien nach Musterprofis:

$ egrep professionals sample.txt sample-copy.txt 

Im obigen Beispiel sehen wir den Dateinamen in der Ausgabe, der die übereinstimmende Zeile aus dieser Datei darstellt.

4. Wie man übereinstimmende Zeilen in der Datei zählt

Manchmal müssen wir nur herausfinden, ob das Muster in der Datei vorhanden ist oder nicht. Wenn ja, in wie vielen Zeilen ist es dann vorhanden? In solchen Fällen können wir die Option -c des Befehls verwenden.

Der folgende Befehl zeigt z. B. 1 als Ausgabe an, da das Wort "Profis" nur in einer Zeile vorhanden ist.

$ egrep -c professionals sample.txt

1

5. So drucken Sie nur übereinstimmende Zeilen in der Datei

Im vorherigen Beispiel haben wir gesehen, dass die Option -c die Anzahl der Vorkommen des Musters nicht zählt. Zum Beispiel kommt das Wort "Profis" zweimal in derselben Zeile vor, aber die Option -c behandelt es nur als eine Übereinstimmung.

In solchen Fällen können wir die Option -o des Befehls verwenden, um nur das passende Muster zu drucken. Der folgende Befehl zeigt beispielsweise das Wort Profis in zwei separaten Zeilen an:

$ egrep -o professionals sample.txt

Zählen wir nun die Zeilen mit dem Befehl wc:

$ egrep -o professionals sample.txt | wc -l

Im obigen Beispiel haben wir die Kombination der Befehle egrep und wc verwendet, um die Anzahl der Vorkommen des jeweiligen Musters zu zählen.

6. Wie man ein Muster findet, indem man die Groß- und Kleinschreibung ignoriert

Standardmäßig führt egrep den Musterabgleich unter Berücksichtigung der Groß-/Kleinschreibung durch. Es bedeutet Worte – wir, wir, wE und WIR werden als unterschiedliche Wörter behandelt. Wir können jedoch die Suche ohne Berücksichtigung der Groß-/Kleinschreibung mit der Option -i erzwingen.

Im folgenden Befehl wird beispielsweise der Musterabgleich für den Text we und We:

$ egrep -i we sample.txt 

7. So schließen Sie teilweise übereinstimmende Muster aus

Im vorherigen Beispiel haben wir gesehen, dass der Befehl egrep eine teilweise Übereinstimmung ausführt. Wenn wir zum Beispiel nach dem Text gesucht haben, haben wir dann auch für andere Texte einen Musterabgleich durchgeführt. Wie Web, Website und waren.

Um diese Einschränkung zu überwinden, können wir die Option -w verwenden, die die Übereinstimmung des gesamten Wortes erzwingt.

$ egrep -w we sample.txt

8. So kehren Sie den Musterabgleich in Dateien um

Bisher haben wir den Befehl egrep verwendet, um die Zeilen zu drucken, in denen das angegebene Muster vorhanden ist. Manchmal möchten wir den Vorgang jedoch auf die entgegengesetzte Weise ausführen.

Zum Beispiel können wir die Zeilen drucken, in denen das angegebene Muster nicht vorhanden ist. Dies können wir mit Hilfe der Option -v erreichen:

$ egrep -v we sample.txt

Hier können wir sehen, dass der Befehl die gesamte Zeile druckt, die nicht den Text we enthält.

9. So finden Sie die Zeilennummer des Musters

Wir können die Option -n des Befehls verwenden, um die Zeilennummerierung zu aktivieren, die die Zeilennummer in der Ausgabe anzeigt, wenn der Musterabgleich erfolgreich ist. Dieser einfache Trick macht die Ausgabe aussagekräftiger.

$ egrep -n professionals sample.txt

In der obigen Ausgabe können wir sehen, dass das Wort Profis in der 5. Zeile vorhanden ist.

10. So führen Sie Pattern Matching im stillen Modus durch

Im stillen Modus druckt der Befehl egrep das übereinstimmende Muster nicht. Wir müssen also den Rückgabewert des Befehls verwenden, um festzustellen, ob der Musterabgleich erfolgreich war oder nicht.

Wir können die Option -q des Befehls verwenden, um den stillen Modus zu aktivieren, was sich beim Schreiben von Shell-Skripten als nützlich erweist.

$ egrep -q professionals sample.txt
egrep -q non-existing-pattern sample.txt

In diesem Beispiel gibt der Rückgabewert Null das Vorhandensein des Musters an, während der Wert ungleich Null das Fehlen des Musters angibt.

11. So zeigen Sie Linien vor der Musterübereinstimmung an

Manchmal ist es sinnvoll, ein paar Linien um das passende Muster herum zu zeigen. Für solche Szenarien können wir die Option -B des Befehls verwenden, die N Zeilen vor dem übereinstimmenden Muster anzeigt.

Der folgende Befehl druckt beispielsweise die Zeile, für die die Musterübereinstimmung erfolgreich ist, sowie 2 Zeilen davor.

$ egrep -B 2 -n professionals sample.txt 

In diesem Beispiel haben wir die Option -n verwendet, um Zeilennummern anzuzeigen.

12. So zeigen Sie Linien nach dem Pattern Match an

Auf ähnliche Weise können wir die Option -A des Befehls verwenden, um Zeilen nach der Musterübereinstimmung anzuzeigen. Der folgende Befehl druckt beispielsweise die Zeile, für die die Musterübereinstimmung erfolgreich ist, sowie die nächsten 2 Zeilen.

$ egrep -A 2 -n professionals sample.txt

13. So zeigen Sie Linien um die Musterübereinstimmung an

Darüber hinaus unterstützt der egrep-Befehl die Option -C, die die Funktionalität der Optionen -A und -B kombiniert und die Zeilen vor und nach dem übereinstimmenden Muster anzeigt.

$ egrep -C 2 -n professionals sample.txt 

14. Wie man ein Muster in mehreren Dateien rekursiv findet

Wie bereits erwähnt, können wir einen Musterabgleich für mehrere Dateien durchführen. Die Situation wird jedoch knifflig, wenn Dateien in mehreren Unterverzeichnissen vorhanden sind und wir sie alle als Befehlsargumente übergeben.

In solchen Fällen können wir den Musterabgleich rekursiv mit der Option -r durchführen, wie im folgenden Beispiel gezeigt.

Erstellen Sie zunächst 2 Unterverzeichnisse und kopieren Sie die sample.txt Datei in diese:

$ mkdir -p dir1/dir2
cp sample.txt dir1/
cp sample.txt dir1/dir2/

Lassen Sie uns nun den Suchvorgang auf rekursive Weise durchführen:

$ egrep -r professionals dir1

Im obigen Beispiel können wir sehen, dass die Musterübereinstimmung für die Dateien dir1/dir2/sample.txt und dir1/sample.txt erfolgreich war.

15. Wie man ein einzelnes Zeichen mit regulären Ausdrücken abgleicht

Wir können einen Punkt (.) verwenden, um ein beliebiges einzelnes Zeichen mit Ausnahme des Zeilenendes abzugleichen. Der folgende reguläre Ausdruck entspricht z. B. dem Text har, hat und hat:

$ egrep "ha." sample.txt

16. Wie man null oder mehr Vorkommen von Zeichen abgleicht

Wir können das Sternchen (*) verwenden, um null oder mehr Vorkommen des vorherigen Zeichens abzugleichen. Zum Beispiel stimmt der folgende reguläre Ausdruck mit Text überein, der eine Zeichenfolge enthält, auf die wir mit null oder mehr Vorkommen des Zeichens b gefolgt sind.

$ egrep "web*" sample.txt

17. Wie man ein oder mehrere Vorkommen des vorherigen Zeichens abgleicht

Wir können das Pluszeichen (+) verwenden, um ein oder mehrere Vorkommen des vorherigen Zeichens abzugleichen. Zum Beispiel stimmt der folgende reguläre Ausdruck mit dem Text überein, der die Zeichenfolge enthält, auf die wir mindestens einmal das Zeichen b folgen ließen.

$ egrep "web+" sample.txt

Hier können wir sehen, dass der Musterabgleich für die Wörter – wir und waren aufgrund des Fehlens des Zeichens b – nicht gelingt.

18. So passen Sie den Anfang der Linie an

Wir können die Einfügemarke (^) verwenden, um den Anfang der Zeile darzustellen. Der folgende reguläre Ausdruck druckt z. B. die Zeilen, die mit dem Text We beginnen:

$ egrep "^We" sample.txt

19. So passen Sie das Ende der Leitung an

Wir können den Dollar ($) verwenden, um das Ende der Linie darzustellen. Der folgende reguläre Ausdruck druckt z. B. die Zeilen, die mit dem Text e enden:

$ egrep "e.$" sample.txt

20. So entfernen Sie leere Zeilen in einer Datei

Wir können die Einfügemarke (^) unmittelbar gefolgt vom Dollar ($) verwenden, um die leere Zeile darzustellen. Lassen Sie uns dies in einem regulären Ausdruck verwenden, um leere Zeilen zu entfernen:

$ egrep -n -v "^$" sample.txt

In der obigen Ausgabe können wir sehen, dass die Zeilennummern 2, 4, 6, 8 und 10 nicht angezeigt werden, da sie leer sind.

Schlussfolgerung

In diesem Artikel haben wir einige nützliche Beispiele für die egrep-Befehle besprochen. Man kann diese Beispiele im Alltag nutzen, um die Produktivität zu verbessern.

Kennen Sie ein anderes bestes Beispiel für den Befehl egrep unter Linux? Teilen Sie uns Ihre Meinung in den Kommentaren unten mit. :

Verwandte Artikel: