Optionen | Beschreibungen |
---|---|
-E |
Interpretiert die |
-i |
Sucht nach |
-v |
Zeigt die Zeilen an, die nicht mit dem übereinstimmen |
-c |
Zählt die Anzahl der übereinstimmenden Zeilen. |
--color |
Zeigt die Ergebnisse in farbiger Ausgabe an. |
So verwenden Sie den Grep-Befehl unter Linux
Die Verwendung des grep-Befehls ist einfach und folgt einer einfachen Syntax. Sie müssen lediglich den Dateinamen oder das Verzeichnis angeben, nach dem Sie suchen möchten, sowie das Muster, nach dem Sie suchen möchten. Für das Muster können Sie die exakten Wörter oder reguläre Ausdrücke verwenden. Sie fragen sich bestimmt: Was ist hier „regulärer Ausdruck“? Reguläre Ausdrücke sind spezielle Zeichenfolgen, die in bestimmten Bereichen unterschiedlich interpretiert werden. Sie werden durch alle möglichen Kombinationen ersetzt, die zum Muster passen.
Wenn Sie beispielsweise E-Mail-Adressen abgleichen möchten, können Sie den regulären Ausdruck „(.+)\@(.+)\n
„. Scheint kompliziert? Lassen Sie uns dies aufschlüsseln:
(.+)
Entspricht allen Zeichen außer neuen Zeilen\@
prüft, ob das „@“-Symbol im angegebenen Satz vorhanden ist.
Nachdem Sie nun wissen, was reguläre Ausdrücke sind und wie der Befehl grep funktioniert, sehen wir uns nun an, wie Sie den Befehl grep unter Linux verwenden.
Suchen Sie mit dem Befehl grep nach Zeichenfolgen in Dateien
Die häufigste Verwendung von grep besteht darin, nach bestimmten Zeichenfolgen in einer Datei zu suchen. Die grundlegende Syntax für die Suche mit dem grep-Befehl in Dateien lautet:
grep
Im fruits.txt
verwenden Sie diesen Befehl:
grep "mango" fruits.txt

Wenn Sie bei der Suche die Groß-/Kleinschreibung ignorieren möchten, verwenden Sie für das obige Beispiel das Flag -i mit dem Befehl grep:
grep -i "mango" fruits.txt

Mit grep in mehreren Dateien suchen
Mit dem grep-Befehl können Sie nicht nur in einer einzelnen Datei, sondern auch in mehreren Dateien suchen. Diese Funktion ist besonders praktisch, wenn Sie mehrere große Dateien durchgehen müssen. Die Syntax zum Suchen nach Zeichenfolgen/Mustern in mehreren Dateien mit dem grep-Befehl lautet:
grep
Wenn Sie beispielsweise in den Dateien „student1.txt“ und „student2.txt“ nach der Zeichenfolge „student“ suchen möchten, verwenden Sie diesen Befehl:
grep "John" student1.txt student2.txt
Durchsuchen Sie alle Dateien in einem Verzeichnis mit grep
Angenommen, Sie müssen nach einer Zeichenfolge suchen und erinnern sich nicht an den Dateinamen, in dem sie vorhanden ist. Sie können natürlich alle im Verzeichnis vorhandenen Dateinamen schreiben, aber stattdessen können Sie auch einfach das „*
” Platzhalter wie gezeigt:
grep
Wenn Sie beispielsweise in allen im Verzeichnis vorhandenen Dateien nach der Zeichenfolge „apple“ suchen möchten, verwenden Sie diesen Befehl:
grep "apple" *

Wenn Sie nur in bestimmten Dateitypen suchen möchten, verwenden Sie diese Syntax:
grep
Wenn Sie beispielsweise nur in TXT-Dateien nach dem Wort „Mango“ suchen möchten, verwenden Sie diesen Befehl:
grep "mango" *.txt

Verwenden von regulären Ausdrücken mit grep
Der Hauptvorteil der Verwendung des grep-Befehls gegenüber anderen Tools/Befehlen ist die Möglichkeit, reguläre Ausdrücke zur Suche nach Inhalten zu verarbeiten. Fügen Sie einfach das Flag -e in den grep-Befehl ein, um mit regulären Ausdrücken zu suchen:
grep -e
Wenn Sie beispielsweise E-Mail-IDs herausfiltern möchten, verwenden Sie diesen Befehl:
grep -e "(.+)\@(.+)" emails.txt

Suchen Sie mit dem grep-Befehl nach mehreren Schlüsselwörtern
Mittlerweile müssen Sie mit der Suche nach Mustern oder Wörtern mit grep vertraut sein. Was aber, wenn Sie nach mehreren Wörtern/Mustern suchen müssen? Nun, grep ist auch dafür gerüstet. Um mit dem grep-Befehl nach mehreren Wörtern zu suchen, verwenden Sie diese Syntax:
grep "
Hier das \| Gibt grep an, um das Ergebnis zu drucken, wenn eine der beiden Abfragen übereinstimmt. Wenn Sie beispielsweise in der Datei „fruits.txt“ nach den Wörtern „apple“ und „mango“ suchen möchten, verwenden Sie diesen Befehl:
grep "apple\|mango" fruits.txt

Zählen Sie übereinstimmende Ergebnisse mit dem grep-Befehl
Manchmal müssen Sie möglicherweise die Anzahl der übereinstimmenden Ergebnisse kennen. Hierzu können Sie das Flag -c mit dem grep-Befehl verwenden:
grep -c "pattern_to_search" filename
Wenn Sie beispielsweise sehen möchten, wie viele E-Mail-IDs in der Datei vorhanden sind student1.txt
verwenden Sie diesen Befehl:
grep -E -c "(.+)@(.+)" student1.txt

Wenn Sie die Anzahl der Zeilen sehen möchten, die nicht mit der Suchabfrage übereinstimmen, fügen Sie einfach das Flag -v zusammen mit -c hinzu:
grep -v -E -c "(.+)@(.+)" student1.txt

Verwenden des grep-Befehls mit Shell Pipes
Die Funktionsweise von Shell-Pipes unter Linux besteht darin, dass sie die Ausgabe eines Befehls als Eingabe an einen anderen Befehl senden. Die grundlegende Syntax zur Verwendung von Shell-Pipes lautet:
first_command | second_command
Mit Shell-Pipes wird das Herausfiltern einiger Befehlsausgaben mit dem Befehl grep viel einfacher, anstatt ständig zu scrollen und nach etwas zu suchen. Um ein bestimmtes Wort oder Muster aus einer bestimmten Befehlsausgabe herauszufiltern, ersetzen Sie es einfach
first_command | grep
Wenn Sie beispielsweise sehen möchten, wie oft der gcc-Befehl zuvor ausgeführt wurde, können Sie diesen Befehl verwenden:
history | grep gcc
Dadurch werden nur die Ergebnisse angezeigt, die das Wort „gcc“ enthalten, wie im Bild unten gezeigt.

Verwenden des grep-Befehls unter Linux
Der Befehl grep ist ein unverzichtbares Werkzeug für Benutzer, die in verschiedenen Dateien, Verzeichnissen oder sogar in anderen Linux-Befehlsausgaben nach bestimmten Mustern oder Wörtern suchen möchten. Sobald Sie alle wesentlichen Optionen und Syntax beherrschen, kann Ihnen der Befehl grep dabei helfen, Ihre Produktivität exponentiell zu steigern. Während Sie hier sind, schauen Sie sich die neuen Funktionen in Ubuntu 23.04 an.
Grep-Befehl in Linux-FAQs
Standardmäßig berücksichtigt grep die Groß-/Kleinschreibung. Wenn Sie bei der Suche jedoch die Groß- und Kleinschreibung ignorieren müssen, verwenden Sie das Flag -i.
Zgrep, eine modifizierte Version von grep, kann zum Suchen in komprimierten Dateien verwendet werden. Die Syntax zum Durchsuchen komprimierter Dateien mit dem Befehl zgrep lautet: zgrep "