GREP -Befehl in Linux

GREP -Befehl in Linux
Der Befehl Grep (Global Regular Expression Print) ist das leistungsstärkste und regelmäßig verwendete Linux-Befehlszeilen-Dienstprogramm. Mit GREP können Sie nach nützlichen Informationen suchen, indem Sie ein Suchkriterium angeben. Es sucht nach einem bestimmten Ausdrucksmuster in einer bestimmten Datei. Wenn es eine Übereinstimmung findet, druckt es alle Zeilen einer Datei, die mit dem angegebenen Muster übereinstimmt. Es ist praktisch, wenn Sie große Protokolldateien durchführen müssen.

In diesem Artikel werden wir die Verwendung des GREP -Dienstprogramms mit verschiedenen Beispielen erläutern. Wir werden Debian 10 verwenden, um die in diesem Artikel genannten Befehle und Methoden zu erklären.

Installieren von Grep

Grep wird in den meisten Linux -Verteilungen installiert. Für den Fall, dass es in Ihrem System fehlt, können Sie es mit der folgenden Methode in Terminal installieren:

$ sudo apt-Get Installieren Sie Grep

Mit Grep

Hier ist die grundlegende Syntax des Grep -Befehls. Es beginnt mit Grep, gefolgt von einigen Optionen und Suchkriterien und endet dann mit dem Dateinamen.

$ grep [Optionen] Muster [Datei…]

Suche nach Dateien

Um nach einem Dateinamen in einem Verzeichnis zu suchen, das eine bestimmte Zeichenfolge enthält, können Sie Grep auf folgende Weise verwenden:

$ ls -l | Grep -i “String

Zum Beispiel, um nach einem Dateinamen zu suchen, der eine Zeichenfolge enthält “prüfen„Der Befehl wäre:

$ ls -l | Grep -ich Test

Dieser Befehl listet alle Dateien auf, die die Zeichenfolge enthaltenprüfen”.

Suchen Sie nach einer Zeichenfolge in einer Datei

Um nach einer Zeichenfolge in einer bestimmten Datei zu suchen, können Sie die folgende Befehlssyntax verwenden:

$ grep "String" Dateiname

Zum Beispiel, um nach einer Zeichenfolge zu suchen “prüfen”In einer Datei mit dem Namen TestFile1, Wir haben den folgenden Befehl verwendet:

$ grep „Mitarbeiter“ TestFile1

Die obige Ausgabe hat den Satz von der zurückgegeben TestFile1 das enthält die Zeichenfolge “Mitarbeiter”.

Suchen Sie nach einer Zeichenfolge in mehreren Dateien

Um nach einer Zeichenfolge in mehreren Dateien zu suchen, können Sie die folgende Befehlssyntax verwenden:

$ grep "String" Dateiname1 Dateiname2

Zum Beispiel haben wir den folgenden Befehl verwendet, um beispielsweise in unseren beiden Dateien TestFile1 und TestFile2 nach einem String „Mitarbeiter“ zu suchen:

$ grep „Mitarbeiter“ TestFile1 TestFile2

In dem obigen Befehl werden alle Zeilen aufgeführt, die den Zeichenfolge „Mitarbeiter“ aus beiden Dateien testfile1 und testFile2 enthalten.

Sie können auch einen Wildcard -Charakter verwenden, wenn alle Dateinamen mit demselben Text beginnen.

$ grep "String" Dateiname*

Wenn wir das obige Beispiel nehmen, in dem unsere Dateinamen waren TestFile1 und TestFile2 , Der Befehl wäre:

$ grep "Mitarbeiter" Testfile*

Suchen Sie nach einer Zeichenfolge in einer Datei, indem Sie den Fall der Zeichenfolge ignorieren

Meistens sind Sie begegnet, dass Sie bei der Suche nach etwas mit Grep, aber keine Ausgabe erhalten. Dies geschieht aufgrund eines Fallfehlübereinstimmungen bei der Suche nach einer Zeichenfolge. Wie in unserem Beispiel, wenn wir fälschlicherweise verwenden “Mitarbeiter" anstatt "Mitarbeiter”, Es wird Nil zurückgeben, da unsere Datei die Zeichenfolge enthält“Mitarbeiter”In Untergeschosse unteren Fall.

Sie können Grep angeben, den Fall der Suchzeichenfolge zu ignorieren, indem Sie -i -Flag nach dem Grep wie folgt verwenden:

$ grep -i "String" Dateiname

Durch die Verwendung des Flags -i führt der Befehl den Fall unempfindlich und gibt alle Zeilen zurück, die die Zeichenfolge enthaltenMitarbeiter”Darin ohne Berücksichtigung der Buchstaben in Großbuchstaben oder Kleinbuchstaben.

Suche mit dem regulären Ausdruck suchen

Bei ordnungsgemäßer Verwendung ist der reguläre Ausdruck eine sehr effektive Merkmale in Grep. Mit dem GREP -Befehl können Sie einen regelmäßigen Ausdruck mit einem Start und einem endenden Keyword definieren. Auf diese Weise müssen Sie die gesamte Linie nicht mit dem Grep -Befehl eingeben. Die folgende Syntax kann für diesen Zweck verwendet werden.

$ grep “Starten des Keywords.*EndingKeyword ”Dateiname

Zum Beispiel haben wir den folgenden Befehl verwendet, um nach einer Zeile in einer Datei mit dem Namen testFile1 zu suchen, die mit der Zeichenfolge „This“ endet, die Zeichenfolge „Daten“ verwendet:

$ grep “das.*Daten ”testfile1

Es wird die ganze Linie von der ausdrucken TestFile1 Enthalten des Ausdrucks (Startschlüsselwort "This" und das Ending -Schlüsselwort "Daten")).

Drucken Sie eine bestimmte Anzahl von Zeilen nach/vor der Suchzeichenfolge

Sie können auch die spezifische Anzahl von Zeilen in einer Datei vor/nach einer String -Übereinstimmung zusammen mit der übereinstimmenden Zeichenfolge selbst anzeigen. Die folgende Syntax kann für diesen Zweck verwendet werden:

$ grep -a Dateiname "String"

Es wird die Anzahl der Zeilen angezeigt, nachdem die Zeichenfolge in der angegebenen Datei einschließlich der übereinstimmenden Zeichenfolge abgeglichen wurde.

Dies ist beispielsweise unsere Beispieldatei mit dem Namen TestFile2.

Der folgende Befehl gibt die übereinstimmende Zeile aus, die die Zeichenfolge enthältMitarbeiter”, Zusammen mit den 2 Zeilen danach.

$ grep -a 2 -i "Mitarbeiter" TestFile2

Um die Anzahl der Zeilen vor der angepassten Zeichenfolge in einer bestimmten Datei anzuzeigen, verwenden Sie in ähnlicher Weise die folgende Syntax:

$ grep -b Dateiname "String"

Verwenden Sie die folgende Syntax, um die Anzahl der Zeilen um die Zeichenfolge in einer bestimmten Datei anzuzeigen:

$ grep -c Dateiname "String"

Hervorhebung der Suche

Standardmäßig zeigte standardmäßig GREP -Zeilen, aber nicht, welcher Teil der Zeile übereinstimmt. Wenn Sie eine Color -Option mit Grep verwenden, wird angezeigt, wo die Bearbeitungszeichenfolgen in Ihrer Datei angezeigt werden. Grep standardmäßig verwenden Sie die rote Farbe zum Hervorheben.

Die folgende Syntax kann für diesen Zweck verwendet werden:

$ grep "String" Dateiname --farbe

Zählen der Anzahl der Übereinstimmungen

Wenn Sie zählen möchten, wie oft ein bestimmtes Wort in einer bestimmten Datei angezeigt wird, können Sie den Grep mit -C -Option verwenden. Es gibt nur die Anzahl der Übereinstimmungen und nicht die Übereinstimmungen selbst zurück. Die folgende Syntax kann für diesen Zweck verwendet werden:

$ grep -c "String" Dateiname

Dies ist unsere Beispieldatei sieht aus:

Das Folgende ist ein Beispiel für einen Befehl, der die Häufigkeit des Wortes zurückgegeben hat Datei erschien in einer Datei mit dem Namen TestFile3.

Umgekehrte Suche

Manchmal möchten Sie eine umgekehrte Suche durchführen, bei der alle Zeilen angezeigt werden, außer dass die Eingabe übereinstimmt. Verwenden Sie dazu einfach die -v -Flagge, gefolgt von Grep:

$ grep -v "String" Dateiname

Zum Beispiel, um alle Zeilen in einer Datei anzuzeigen TestFile3 Das enthält nicht das Wort „Konto“, wir haben den folgenden Befehl verwendet:

$ grep -v "Konto" TestFile3

Verwenden Sie Grep mit anderen Befehlen

Grep kann auch verwendet werden, um das erforderliche Ergebnis aus verschiedenen Befehlen herauszufiltern. Zum Beispiel von der “APT -INSTALLED LISTE ” Befehlsausgabe, Sie möchten nur die paketen, die automatisch installiert wurden. Sie können das Ergebnis mit Grep wie folgt herausfiltern:

$ apt -installierte Liste | Grep Automatisch

In ähnlicher Weise liefert LSCPU detaillierte Informationen zur CPU. Wenn Sie nur an den Informationen zur CPU -Architektur interessiert sind, können Sie sie mit dem folgenden Befehl herausfiltern:

$ lscpu | Grep Architektur

In diesem Artikel haben wir einige Beispiele beschrieben, die Ihnen helfen, die GREP -Befehle und deren Verwendung unter verschiedenen Bedingungen zu verstehen. Wenn Sie einen starken Grep -Befehl GREP haben, können Sie viel Zeit sparen, wenn Sie große Konfiguration oder Protokolldateien und nützliche Informationen über sie durchsuchen müssen.