Grep-Befehl unter Linux

Grep Command Linux



Der Befehl Grep (Global Regular Expression Print) ist das leistungsstärkste und am häufigsten verwendete Linux-Befehlszeilenprogramm. Mit Grep können Sie nach nützlichen Informationen suchen, indem Sie ein Suchkriterium angeben. Es sucht nach einem bestimmten Ausdrucksmuster in einer angegebenen Datei. Wenn es eine Übereinstimmung findet, druckt es alle Zeilen einer Datei, die dem angegebenen Muster entsprechen. Dies ist praktisch, wenn Sie durch große Protokolldateien filtern müssen.

In diesem Artikel erklären wir die Verwendung des Dienstprogramms grep anhand verschiedener Beispiele. Wir werden Debian 10 verwenden, um die in diesem Artikel erwähnten Befehle und Methoden zu erklären.







Installation von Grep

Grep wird in den meisten Linux-Distributionen installiert. Falls es jedoch auf Ihrem System fehlt, können Sie es mit der folgenden Methode im Terminal installieren:



$sudo apt-get installieren Griff

Verwenden von 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.



$Griff [Optionen]MUSTER[DATEI...]

Nach Dateien suchen

Um nach einem Dateinamen in einem Verzeichnis zu suchen, das eine bestimmte Zeichenfolge enthält, können Sie grep folgendermaßen verwenden:





$ls -das | Griff -ichSchnur

Zum Beispiel, um nach einem Dateinamen zu suchen, der eine Zeichenfolge enthält Prüfung , der Befehl wäre:

$ls-das| Griff-ichPrüfung

Dieser Befehl listet alle Dateien auf, die die Zeichenfolge enthalten Prüfung .



Suche nach einer Zeichenfolge in einer Datei

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

$GriffZeichenfolge Dateiname

Zum Beispiel, um nach einer Zeichenfolge zu suchen Prüfung in einer Datei namens Testdatei1 , Wir haben den folgenden Befehl verwendet :

$GriffMitarbeiter-Testdatei1

Die obige Ausgabe hat den Satz aus dem . zurückgegeben Testdatei1 das enthält die Zeichenfolge Angestellter .

Suche nach einer Zeichenfolge in mehreren Dateien

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

$GriffZeichenfolge Dateiname1 Dateiname2

Um beispielsweise in unseren beiden Dateien testfile1 und testfile2 nach einem String-Mitarbeiter zu suchen, haben wir den folgenden Befehl verwendet:

$GriffMitarbeiter Testdatei1 Testdatei2

Der obige Befehl listet alle Zeilen auf, die den String employee aus den beiden Dateien testfile1 und testfile2 enthalten.

Sie können auch ein Platzhalterzeichen verwenden, wenn alle Dateinamen mit demselben Text beginnen.

$GriffZeichenfolge Dateiname*

Wenn wir das obige Beispiel nehmen, in dem unsere Dateinamen lauteten Testdatei1 und Testdatei2 , der Befehl wäre:

$GriffMitarbeiter-Testdatei*

Suchen Sie in einer Datei nach einer Zeichenfolge, indem Sie die Groß-/Kleinschreibung der Zeichenfolge ignorieren

Am häufigsten ist dies aufgetreten, wenn Sie mit grep nach etwas suchen, aber keine Ausgabe erhalten. Dies geschieht aufgrund einer nicht übereinstimmenden Groß-/Kleinschreibung bei der Suche nach einer Zeichenfolge. Wie in unserem Beispiel, wenn wir fälschlicherweise verwenden Angestellter Anstatt von Angestellter , es wird nil zurückgegeben, da unsere Datei die Zeichenfolge enthält Angestellter in Kleinbuchstaben.

Sie können grep anweisen, die Groß-/Kleinschreibung der Suchzeichenfolge zu ignorieren, indem Sie das Flag –i nach dem grep wie folgt verwenden:

$Griff–i string Dateiname

Durch die Verwendung des Flags –i führt der Befehl eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung durch und gibt alle Zeilen zurück, die die Zeichenfolge enthalten Angestellter darin ohne Berücksichtigung der Buchstaben sind Groß- oder Kleinbuchstaben.

Suche mit dem regulären Ausdruck

Bei richtiger Verwendung ist der reguläre Ausdruck eine sehr effektive Funktion in grep. Mit dem Grep-Befehl können Sie einen regulären Ausdruck mit einem Anfangs- und einem Endschlüsselwort definieren. Auf diese Weise müssen Sie nicht die gesamte Zeile mit dem Befehl grep eingeben. Dazu kann die folgende Syntax verwendet werden.

$GriffAnfangs-Schlüsselwort.*endKeyword Dateiname

Um beispielsweise in einer Datei namens testfile1 nach einer Zeile zu suchen, die mit der Zeichenfolge this beginnt und mit der Zeichenfolge data endet, haben wir den folgenden Befehl verwendet:

$GriffDies.*Datentestdatei1

Es wird die gesamte Zeile aus dem Testdatei1 der den Ausdruck enthält (Startschlüsselwort this und Endschlüsselwort data).

Drucken Sie eine bestimmte Anzahl von Zeilen nach/vor dem Suchstring

Sie können auch die spezifische Anzahl von Zeilen in einer Datei vor/nach einem String-Match zusammen mit dem übereinstimmenden String selbst anzeigen. Dazu kann folgende Syntax verwendet werden:

$Griff -ZU <n>Zeichenfolge Dateiname

Es wird N Zeilen anzeigen, nachdem die Zeichenfolge in der angegebenen Datei einschließlich der übereinstimmenden Zeichenfolge gefunden wurde.

Dies ist zum Beispiel unsere Beispieldatei mit dem Namen Testdatei2 .

Der folgende Befehl gibt die übereinstimmende Zeile aus, die die Zeichenfolge enthält Angestellter , zusammen mit den 2 Zeilen danach.

$Griff-ZU2–i Mitarbeiter-Testdatei2

Verwenden Sie auf ähnliche Weise die folgende Syntax, um N Zeilen vor der übereinstimmenden Zeichenfolge in einer bestimmten Datei anzuzeigen:

$Griff -B <n>Zeichenfolge Dateiname

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

$Griff -C <n>Zeichenfolge Dateiname

Hervorhebung der Suche

Grep druckt standardmäßig übereinstimmende Zeilen, zeigt jedoch nicht an, welcher Teil der Zeile übereinstimmt. Wenn Sie die Option –color mit grep verwenden, wird angezeigt, wo die Bearbeitungszeichenfolgen in Ihrer Datei erscheinen. Grep verwendet standardmäßig die rote Farbe zum Hervorheben.

Dazu kann folgende Syntax verwendet werden:

$GriffZeichenfolge Dateiname--Farbe

Zählen der Anzahl der Spiele

Wenn Sie zählen möchten, wie oft ein bestimmtes Wort in einer bestimmten Datei vorkommt, können Sie die Option grep mit der Option –c verwenden. Es gibt nur die Anzahl der Übereinstimmungen und nicht die Übereinstimmungen selbst zurück. Dazu kann folgende Syntax verwendet werden:

$Griff–c Zeichenfolge Dateiname

So sieht unsere Beispieldatei aus:

Im Folgenden finden Sie ein Beispiel für einen Befehl, der die Häufigkeit des Wortes zurückgibt Datei erschien in einer Datei namens Testdatei3 .

Invertierte Suche

Manchmal möchten Sie eine umgekehrte Suche durchführen, bei der alle Zeilen angezeigt werden, mit Ausnahme derjenigen, die mit der Eingabe übereinstimmen. Verwenden Sie dazu einfach das Flag –v gefolgt von grep:

$Griff–v String-Dateiname

Um beispielsweise alle Zeilen in einer Datei anzuzeigen Testdatei3 die das Wort account nicht enthalten, haben wir den folgenden Befehl verwendet:

$Griff–v Kontotestdatei3

Grep mit anderen Befehlen verwenden

Grep kann auch verwendet werden, um das erforderliche Ergebnis aus verschiedenen ausgegebenen Befehlen herauszufiltern. Zum Beispiel aus dem apt –installierte Liste Befehlsausgabe nur die automatisch installierten Pakete finden möchten, können Sie das Ergebnis mit grep wie folgt herausfiltern:

$geeignet--Eingerichtetaufführen| Griffautomatisch

Ebenso liefert lscpu detaillierte Informationen über die CPU. Wenn Sie nur die Informationen zur CPU-Architektur interessieren, können Sie diese mit dem folgenden Befehl herausfiltern:

$lscpu| GriffDie Architektur

In diesem Artikel haben wir einige Beispiele beschrieben, die Ihnen helfen, die grep-Befehle und ihre Verwendung unter verschiedenen Bedingungen zu verstehen. Wenn Sie den grep-Befehl fest im Griff haben, können Sie viel Zeit sparen, wenn Sie große Konfigurations- oder Protokolldateien anzeigen und nützliche Informationen durchsehen müssen.