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, arbeitet EGREP genauso wie Grep -e (Grep Extended Regex '). EGREP scannt eine bestimmte Datei, eine Zeile zur Zeile und druckt die Zeilen (en), die den Suchzeichenfolge/den regulären Ausdruck enthalten. In diesem Artikel werden wir 15 nützliche Beispiele für die EGREP -Befehle erläutern, die Neulingen und sogar Experten helfen, sinnvolle Suchanfragen in Linuxwe durchzuführen, haben diese Beispiele zu einem Debian 10 Buster -System durchgeführt, aber sie können leicht auf den meisten Linux -Distributionen repliziert werden.

Beispiel 1: Suche 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, den Sie in dieser Zeichenfolge nachschlagen möchten. Das Ergebnis zeigt dann die gesamte Zeile an, die die durchsuchte Zeichenfolge enthält.

Syntax:

$ eGrep "Search_String" Dateiname

Beispiel:

$ eGrep Debian Samplefile.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: Suche nach einer bestimmten Zeichenfolge in mehreren Dateien

Mit dem Befehl eGrep können Sie nach einem Zeichenfolge zwischen mehreren Dateien suchen, die sich im selben Verzeichnis befinden. Sie müssen nur ein wenig genauer sein, um ein „Muster“ für die durchsuchten Dateien bereitzustellen. Dies wird mit dem Beispiel, das wir präsentieren werden, deutlicher.

Syntax:

$ eGrep "search_string" Dateiname_Pattern

Beispiel:

Hier werden wir in all dem nach dem Wort „Debian“ suchen .TXT -Dateien, indem das Dateiname -Muster wie folgt angegeben wird:

$ eGrep "Debian" *.txt

Der Befehl hat alle Zeilen zusammen mit den Dateinamen gedruckt, die das Wort „Debian“ von allen enthalten .TXT -Dateien im aktuellen Verzeichnis.

Beispiel 3: Rekursiv durch die Zeichenfolge im gesamten Verzeichnis durchsuchen

Wenn Sie in allen Dateien aus einem Verzeichnis und seinen Unterabrechnungen nach einer Zeichenfolge suchen möchten.

Syntax:

$ eGrep -r "search_string" *

Beispiel:

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

$ eGrep -r "Beispiel" *

Die Ergebnisse enthalten alle Zeilen zusammen mit den Dateinamen, die das Wort „Beispiel“ aus allen Dateien im Download -Verzeichnis sowie der Sub -Verzeichnisse enthalten.

Beispiel 4: Durchführen einer von Fall unempfindlichen Suche

Mit dem Flag -i können Sie den Befehl eGrep verwenden, um die Ergebnisse basierend auf einer Suchzeichenfolge zu drucken, ohne sich um seinen Fall Sorgen machen 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" unabhängig von ihrem Fall enthalten.

$ eGrep -i "Search_string" Dateiname

Sie können sehen, wie das Flag -i -Flag mir geholfen hat, alle Zeilen zu holen, die die Suchzeichenfolge durch eine Fall „unempfindlich“ enthalten.

Beispiel 5: Suche nach einer Zeichenfolge als volles Wort und nicht als Unterstring

Wenn Sie normalerweise über EGREP nach einer Zeichenfolge suchen, druckt sie alle Wörter, die die Zeichenfolge als Unterstring enthalten. Wenn Sie beispielsweise nach dem String „On“ nachschlagen. Wenn Sie möchten, dass die Ergebnisse nur das Wort „On“ als volles Wort und nicht als Unterstring anzeigen, können Sie das Flag -W -Flag mit EGREP verwenden.

Syntax:

$ eGrep -W "Search_String" Dateiname

Beispiel:

Hier suche ich in einer Beispieldatei nach dem Zeichenfolge „On“:

$ eGrep -i „on“ samplefile.txt

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

$ egrep -iw „on“ samplefile.txt

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

Beispiel 6: Drucken nur die Dateinamen, die die Zeichenfolge enthalten

Manchmal möchten wir nur die Dateinamen abrufen, die eine bestimmte Zeichenfolge enthalten, anstatt die Zeilen zu drucken, die sie enthalten. Dies kann mit dem Flag -l (Kleinbuchstaben L) mit dem EGREP -Befehl erfolgen.

Syntax:

$ eGrep -l "Search_string" Dateiname_Pattern

Beispiel:

Hier suche ich nach der Zeichenfolge "Beispiel" in allen .TXT -Dateien im aktuellen Verzeichnis:

$ eGrep -l Beispiel *.txt

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

Beispiel 7: Drucken nur die Suchzeichenfolge aus einer Datei

Anstatt die gesamte Zeile zu drucken, die die Suchzeichenfolge enthält, können Sie den Befehl EGREP verwenden, um die Zeichenfolge selbst zu drucken. Die Zeichenfolge wird so ausgedruckt, wie oft er in der angegebenen Datei angezeigt wird.

Syntax:

$ eGrep -o "Search_string" Dateiname

Beispiel:

In diesem Beispiel suche ich nach dem Wort "dies" in meiner Datei.

$ eGREP -O this sampleFile_.txt

Hinweis: Diese Verwendung des Befehls ist praktisch, wenn Sie nach einer Zeichenfolge suchen, die auf einem regulären Ausdrucksmuster basiert. Wir werden regelmäßige Ausdrücke in einem der kommenden Beispiele im Detail erläutern.

Beispiel 8: Anzeige der N -Anzahl der 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 praktisch in dem Sinne, dass er verwendet werden kann, um die Zeile mit der Suchzeichenfolge und auch eine bestimmte Anzahl von Zeilen vor, nach und umzingeln.

Dies ist die Beispieltextdatei, die ich verwenden werde, um die kommenden Beispiele zu erläutern:

N Anzahl der Zeilen nach der Suchzeichenfolge:

Die Verwendung des A -Flags folgendermaßen zeigt die Zeile mit der Suchzeichenfolge und der n Anzahl der Zeilen nach dem IT an:

$ eGrep -a "Search_String" Dateiname

Beispiel:

$ eGrep -a 2 "Probe" Sample -Datei.txt

N Anzahl der Zeilen vor der Suchzeichenfolge:

Wenn Sie das B -Flag auf folgende Weise verwenden, wird die Zeile angezeigt, die die Suchzeichenfolge und die N -Anzahl der Zeilen enthält, bevor sie:

$ EGREP -B "Search_String" Dateiname

Beispiel:

$ eGREP -B 2 "Probe" Sample -Datei.txt

N Anzahl der Zeilen vor der Suchzeichenfolge:

Wenn Sie das C -Flag auf folgende Weise verwenden, werden die Zeile angezeigt, die die Suchzeichenfolge enthält, und die N -Anzahl der Zeilen vor und nach dem Verhältnis:

$ eGrep -c "Search_String" Dateiname

Beispiel:

$ eGrep -c 2 "Beispiel" Samplefile.txt

Beispiel 9: Übereinstimmung mit dem regulären Ausdruck in Dateien

Der Befehl eGrep wird leistungsfähiger, wenn Sie in einer Datei nach regelmäßigen Ausdrücken anstelle solider Suchzeichenfolge suchen.

Syntax:

$ eGrep "Regularexpressions" Dateiname

Lassen Sie uns erklären, wie Sie regelmäßige Ausdrücke in Ihrer EGREP -Suche verwenden können:

Wiederholungsoperator Verwenden
? Der vorhergehende Element vor ? ist optional und ist maximal einmal übereinstimmt
* Der vorhergehende Element vor * wird mit Null oder mehrmals übereinstimmt
+ Der vorhergehende Element vor + wird ein oder mehrmals übereinstimmen
N Der vorhergehende Element ist genau mit der Anzahl der Male übereinstimmt.
N, Der vorhergehende Element wird n oder mehrmals abgestimmt
,M Der vorhergehende Element ist maximal m -mal übereinstimmt
n, m Der vorhergehende Gegenstand ist mindestens n -mal, aber nicht mehr als m -mal übereinstimmend

Beispiel:

Im folgenden Beispiel werden die Zeilen, die den folgenden Ausdruck enthalten, übereinstimmend:

Beginnend mit "GNOME" und mit "Programmen" enden

Beispiel 10: Hervorhebung der Suchzeichenfolge

Wenn Sie die Variable der Grep_Options -Umgebung wie unten festlegen, erhalten Sie Ihre Ausgabe mit der in den Ergebnissen hervorgehobenen Suchzeichenfolge/Muster:

$ sudo exports grep_options = '-color = auto' grep_color = '100; 8'

Sie können dann in jeder Art und Weise, die wir in den Beispielen dieses Artikels beschrieben haben, nach der Zeichenfolge suchen.

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

Mit der Suche nach Invertierungen meinen wir, dass der Befehl eGrep alles in der Datei druckt, mit Ausnahme der Zeilen, die die Suchzeichenfolge enthalten. Wir werden die folgende Beispieldatei verwenden, um die Invert -Suche über EGREP zu erläutern. Wir haben den Inhalt der Datei mit dem CAT -Befehl gedruckt:

Syntax:

$ eGrep -v "Search_string" Dateiname

Beispiel:

Aus der von uns erwähnten Beispieldatei möchten wir die Zeile, die das Wort „zwei“ in der Ausgabe enthält, weglassen. Daher verwenden wir den folgenden Befehl:

$ eGrep -v "Two" SampleFile_.txt

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

Beispiel 12: Durchführung der Invert -Suche basierend auf mehreren Kriterien/Suchmuster

Mit dem Flag -v können Sie auch den Befehl EGREP durchführen, um eine invertierte Suche basierend auf mehr als einem Suchzeichenfolge/Muster 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 "Search_string"/"Muster" -E "Search_string"/"Muster"
… Dateinamen

Beispiel:

Aus der von uns erwähnten Beispieldatei möchten wir die Zeile (en) mit den Wörtern „Eins“ und „zwei“ in der Ausgabe weglassen, daher verwenden wir den folgenden Befehl:

$ eGrep -v -e "eins" -E "zwei" SampleFile_.txt

Wir haben zwei Wörter mit dem Flag -e weggeliefert, daher wird die Ausgabe wie folgt angezeigt:

Beispiel 13: Drucken der Anzahl der Zeilen, die mit der Suchzeichenfolge übereinstimmen

Anstatt die durchsuchte Zeichenfolge aus der Datei oder den enthaltenden Zeilen zu drucken, können Sie den Befehl EGREP verwenden, um die Anzahl der gegen die Zeichenfolge übereinstimmenden Zeilen zu zählen und zu drucken. Diese Anzahl kann mit dem Flag -c -Flag mit dem EGREP -Befehl abgerufen werden.

Syntax:

$ eGrep -c "Search_String" Dateiname

Beispiel:

In diesem Beispiel werden wir das -C -Flag verwenden, um die Anzahl der Zeilen zu zählen, die das Wort „this“ in unserer Beispieldatei enthalten:

$ eGrep -c "this" Dateiname

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

$ grep -v -c "Search_string" Dateiname

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

Mit dem Flag -n können Sie den Befehl eGrep erstellen, um die übereinstimmende Zeile zusammen mit der Zeilennummer zu drucken, die die Suchzeichenfolge enthält.

Syntax:

$ grep -n "Search_string" Dateiname

Beispiel:

$ grep -n "this" sampleFile_.txt

Sie können sehen, wie die Zeilennummern gegen die Suchergebnisse angezeigt werden.

Beispiel 15: Anzeige der Position in der Datei, in der die Suchzeichenfolge übereinstimmt

Wenn Sie die Position in der Datei wissen möchten, in der die Suchzeichenfolge existiert, können Sie das -B -Flag mit dem Befehl EGREP verwenden.

$ grep -o -b "Search_string" Dateiname

Beispiel:

$ grep -o -b "this” sampleFile_.txt

Die Suchergebnisse drucken den Byte -Offset der Datei, in der das Suchwort existiert.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 Suchanfragen auf Ihren Dateien durchführen.