Was ist grep?
Das Dienstprogramm grep, das wir heute in die Hände bekommen werden, ist ein Unix-Tool, das zur selben Familie gehört wie die Dienstprogramme egrep und fgrep. Dies sind alles Unix-Tools, die für die Durchführung der sich wiederholenden Suchaufgabe in Ihren Dateien und Texten entwickelt wurden. Sie können nach Dateien und deren Inhalten suchen, um nützliche Informationen abzurufen, indem Sie bestimmte Suchkriterien mit dem grep-Befehl angeben.
Sie sagen also, GREP steht für Global Regular Expression Print, aber woher stammt dieser Befehl „grep“? grep leitet sich im Grunde von einem speziellen Befehl für den sehr einfachen und ehrwürdigen Unix-Texteditor namens ed ab. So geht der ed-Befehl:
g/re/p
Der Zweck des Befehls ist ziemlich ähnlich dem, was wir mit dem Durchsuchen von grep meinen. Dieser Befehl ruft alle Zeilen in einer Datei ab, die einem bestimmten Textmuster entsprechen.
Lassen Sie uns den grep-Befehl etwas genauer untersuchen. In diesem Artikel erläutern wir die Installation des Dienstprogramms grep und stellen einige Beispiele vor, anhand derer Sie genau lernen können, wie und in welchem Szenario Sie es verwenden können.
Wir haben die in diesem Artikel erwähnten Befehle und Verfahren auf einem Ubuntu 18.04 LTS-System ausgeführt.
Grep installieren
Obwohl das Dienstprogramm grep standardmäßig mit den meisten Linux-Systemen geliefert wird, ist hier die Vorgehensweise, wenn Sie es nicht auf Ihrem System installiert haben:
Öffnen Sie Ihr Ubuntu-Terminal entweder über das Dash oder die Tastenkombination Strg+Alt+T. Geben Sie dann als root den folgenden Befehl ein, um grep über apt-get zu installieren:
$ sudo apt-get install grep
Geben Sie y ein, wenn Sie während des Installationsvorgangs mit einer j/n-Option aufgefordert werden. Danach wird das Dienstprogramm grep auf Ihrem System installiert.
Sie können die Installation überprüfen, indem Sie die grep-Version mit dem folgenden Befehl überprüfen:
$ grep --version
Verwendung des grep-Befehls mit Beispielen
Der Befehl grep lässt sich am besten erklären, indem einige Szenarien vorgestellt werden, in denen er verwendet werden kann. Hier sind einige Beispiele:
Nach Dateien suchen
Wenn Sie nach einem Dateinamen suchen möchten, der ein bestimmtes Schlüsselwort enthält, können Sie Ihre Dateiliste mit dem grep-Befehl wie folgt filtern:
Syntax:
$ls -l | grep -i „ Suchwort”
Beispiele:
$ ls -l | grep -i sample
Dieser Befehl listet alle Dateien im aktuellen Verzeichnis mit dem Namen der Datei auf, die das Wort „private“ enthält.
Nach einem String in einer Datei suchen
Mit dem grep-Befehl können Sie einen Satz aus einer Datei abrufen, die eine bestimmte Textzeichenfolge enthält.
Syntax:
grep „string“ Dateiname
Beispiel:
$ grep “sample file” sampleFile.txt
Meine Beispieldatei sampleFile.txt enthält den Satz mit der Zeichenfolge „Beispieldatei“, die Sie in der obigen Ausgabe sehen können. Das Schlüsselwort und die Zeichenfolge erscheinen in farbiger Form in den Suchergebnissen.
Nach einer Zeichenfolge in mehr als einer Datei suchen
Falls Sie in allen Dateien des gleichen Typs nach Sätzen suchen möchten, die Ihre Textzeichenfolge enthalten, steht Ihnen der grep-Befehl zur Verfügung.
Syntax 1:
$ grep „string“ DateinameSchlüsselwort*
Syntax 2:
$ grep „string“ *.extension
Beispiel1:
$ grep "sample file” sample*
Dieser Befehl ruft alle Sätze ab, die die Zeichenfolge „Beispieldatei“ aus allen Dateien enthalten, deren Dateiname das Schlüsselwort „Beispiel“ enthält.
Beispiel 2:
$ grep "sample file” *.txt
Dieser Befehl ruft alle Sätze ab, die die Zeichenfolge „Beispieldatei“ aus allen Dateien mit der Erweiterung .txt enthalten.
Suche nach einer Zeichenfolge in einer Datei, ohne die Groß-/Kleinschreibung der Zeichenfolge zu berücksichtigen
In den obigen Beispielen war meine Textzeichenfolge glücklicherweise in der gleichen Schreibweise wie in meinen Beispieltextdateien. Wenn ich den folgenden Befehl eingegeben hätte, wäre mein Suchergebnis null, da der Text in meiner Datei nicht mit einem großgeschriebenen Wort „Beispiel“
beginnt$ grep "Sample file" *.txt
Lassen Sie uns grep anweisen, die Groß-/Kleinschreibung des Suchstrings zu ignorieren und die Suchergebnisse basierend auf dem String über die Option -i auszugeben.
Syntax:
$ grep -i „String“-Dateiname
Beispiel:
$ grep -i "Sample file" *.txt
Dieser Befehl ruft alle Sätze ab, die die Zeichenfolge „Beispieldatei“ aus allen Dateien mit der Erweiterung .txt enthalten. Dabei wird nicht berücksichtigt, ob der Suchbegriff in Groß- oder Kleinschreibung war.
Suche anhand eines regulären Ausdrucks
Mit dem Befehl grep können Sie einen regulären Ausdruck mit einem Start- und Endschlüsselwort angeben. Die Ausgabe ist der Satz, der den gesamten Ausdruck zwischen Ihrem angegebenen Anfangs- und Endschlüsselwort enthält. Diese Funktion ist sehr leistungsfähig, da Sie keinen ganzen Ausdruck in den Suchbefehl schreiben müssen.
Syntax:
$ grep „startingKeyword.*endingKeyword“ Dateiname
Beispiel:
$ grep "starting.*.ending" sampleFile.txt
Dieser Befehl druckt den Satz, der den Ausdruck enthält (beginnend mit meinem startKeyword und endend mit meinem endingKeyword) aus der Datei, die ich im grep-Befehl angegeben habe.
Zeigen Sie eine bestimmte Anzahl von Zeilen nach/vor der Suchzeichenfolge an
Sie können den Befehl grep verwenden, um N Zeilen vor/nach einer Suchzeichenfolge aus einer Datei auszugeben. Das Suchergebnis enthält auch die Textzeile, die den Suchbegriff enthält.
Die Syntax für N Zeilen nach der Schlüsselzeichenfolge:
$ grep -A
Beispiel:
$ grep -A 3 -i "samplestring" sampleFile.txt
So sieht meine Beispieltextdatei aus:
Und so sieht die Ausgabe des Befehls aus:
Es zeigt 3 Zeilen, einschließlich derjenigen, die die gesuchte Zeichenfolge enthält, aus der Datei an, die ich im grep-Befehl angegeben habe.
Die Syntax für N Zeilen vor der Schlüsselzeichenfolge:
$ grep -B
Sie können auch nach N Zeilen „um“ eine Textzeichenfolge suchen. Das bedeutet N Zeilen vor und N nach der Textzeichenfolge.
Die Syntax für N Zeilen um die Schlüsselzeichenfolge:
$ grep -C
Anhand der in diesem Artikel beschriebenen einfachen Beispiele können Sie den grep-Befehl in den Griff bekommen. Sie können es dann verwenden, um gefilterte Ergebnisse zu suchen, die Dateien oder Inhalte der Datei enthalten können. Das spart viel Zeit, die Sie damit verschwendet hätten, die gesamten Suchergebnisse zu überfliegen, bevor Sie den grep-Befehl gemeistert haben.