grep
steht für Globale Suche nach regulären Ausdrücken und Ausdrucken . Es ist ein Befehlszeilentool, das in UNIX- und Linux-Systemen zum Durchsuchen eines bestimmten Musters in einer Datei oder einer Gruppe von Dateien verwendet wird.
grep
Es gibt viele Optionen, mit denen wir verschiedene suchbezogene Aktionen für Dateien ausführen können. In diesem Artikel erfahren Sie, wie Sie grep
mit den verfügbaren Optionen und den grundlegenden regulären Ausdrücken zum Durchsuchen von Dateien arbeiten.
Wie benutzt man grep
grep
Kann ohne Übergabe einer Option verwendet werden, um nach einem Muster in einer Datei oder einer Gruppe von Dateien zu suchen. Die Syntax lautet:
grep ''
Beachten Sie, dass einfache oder doppelte Anführungszeichen um den Text erforderlich sind, wenn es sich um mehr als ein Wort handelt.
Sie können auch den Platzhalter (*) verwenden , um alle Dateien in einem Verzeichnis auszuwählen.
Das Ergebnis ist das Auftreten des Musters (anhand der gefundenen Linie) in den Dateien. Wenn keine Übereinstimmung vorliegt, wird keine Ausgabe an das Terminal gedruckt.
Angenommen, wir haben die folgenden Dateien (grep.txt):
Hello, how are you I am grep Nice to meet you
Der folgende grep
Befehl sucht nach allen Vorkommen des Wortes "Sie":
grep you grep.txt
Das Ergebnis dafür ist:
Hello, how are you Nice to meet you
you
Es wird erwartet, dass es eine andere Farbe als der andere Text hat, um leicht zu identifizieren, wonach gesucht wurde.
Es gibt jedoch grep
mehr Optionen, mit denen wir bei einem Suchvorgang mehr erreichen können. Schauen wir uns neun davon an, während wir sie auf das obige Beispiel anwenden.
Optionen verwendet mit grep
1. -n
(- Zeilennummer) - Zeilennummern auflisten
Dadurch werden die Übereinstimmungen für den Text zusammen mit den Zeilennummern ausgedruckt. Wenn Sie sich das Ergebnis oben ansehen, werden Sie feststellen, dass es keine Zeilennummern gibt, sondern nur die Übereinstimmungen.
grep you grep.txt -n
Ergebnis:
1: Hello, how are you 3: Nice to meet you
2. -c
(--count) - Gibt die Anzahl der Übereinstimmungszeilen aus
grep you grep.txt -c
Ergebnis:
2
Beachten Sie, dass bei einem anderen "Sie" in Zeile 1 die Option -c
immer noch 2 gedruckt wird. Dies liegt daran, dass es um die Anzahl der Zeilen geht, in denen die Übereinstimmungen angezeigt werden, nicht um die Anzahl der Übereinstimmungen.
3. -v
(--invert-match) - druckt die Linien, die nicht mit dem angegebenen Muster übereinstimmen
grep you grep.txt -v -n
Ergebnis:
2. I am grep
Beachten Sie, dass wir auch Option verwendet haben -n
? Ja, Sie können mehrere Optionen in einem Befehl anwenden.
4. -i
(--ignore-case) - wird für die Groß- und Kleinschreibung verwendet
# command 1 grep You grep.txt # command 2 grep YoU grep.txt -i
Ergebnisse:
# result 1 # no result # result 2 Hello, how are you Nice to meet you
5. -l
(--files-with-match) - Druckt Dateinamen, die einem Muster entsprechen
# command 1 grep you grep.txt -l # command 2 grep You grep.txt -i -l
Ergebnisse:
# result 1 grep.txt # result 2 # all files in the current directory that matches # the text 'You' case insensitively
#### 6. `-w` (--word-regexp) - print matches of the whole word
Entspricht standardmäßig grep
Zeichenfolgen, die das angegebene Muster enthalten. Dies bedeutet, dass grep yo grep.txt
die gleichen Ergebnisse gedruckt werden, grep yo grep.txt
weil "yo" in Ihnen gefunden werden kann. Ebenso 'du'.
Mit der Option -w
, grep
stellt sicher , dass die Spiele sind genau das gleiche Muster wie angegeben. Beispiel:
grep yo grep.txt -w
Ergebnis:
Kein Ergebnis!
7. -o
(--nur übereinstimmend) - druckt nur das übereinstimmende Muster
Standardmäßig wird grep
die Zeile gedruckt, in der das übereinstimmende Muster gefunden wird. Mit dieser Option -o
wird nur das übereinstimmende Muster Zeile für Zeile gedruckt. Beispiel:
grep yo grep.txt -o
Ergebnis:
yo
8. -A
(--after-context) und -B
(--before-context) - drucken die Zeilen nach und vor (bzw.) dem übereinstimmenden Muster
grep grep grep.txt -A 1 -B 1
Ergebnis:
Hello, how are you I am grep Nice to meet you
Dieses übereinstimmende Muster befindet sich in Zeile 2. -A 1
bedeutet eine Zeile nach der übereinstimmenden Zeile und -B 1
eine Zeile vor der übereinstimmenden Zeile.
Es gibt auch eine -C
Option (--context), die gleich -A
+ ist -B
. Der übergebene Wert -C
würde für -A
und verwendet -B
.
9. -R
(--dereference-recursive) - rekursive Suche
Standardmäßig grep
können keine Verzeichnisse durchsucht werden. Wenn Sie dies versuchen, wird eine Fehlermeldung angezeigt ("Ist ein Verzeichnis"). Mit dieser Option -R
wird das Durchsuchen von Dateien in Verzeichnissen und Unterverzeichnissen möglich. Beispiel:
grep you .
Ergebnis:
# 'you' matches in a folders # and files starting from the # current directory
Reguläre Ausdrücke für Muster
grep
Ermöglicht auch grundlegende reguläre Ausdrücke zum Festlegen von Mustern. Zwei davon sind:
1. ^pattern
- Zeilenanfang
Dieses Muster bedeutet, dass das grep
mit den Zeichenfolgen übereinstimmt, deren Zeilen mit der nachfolgend angegebenen Zeichenfolge beginnen ^
. Beispiel:
grep ^I grep.txt -n
Ergebnis:
2: I
2. pattern$
- Ende einer Zeile
Im Gegensatz zu ^
, $
gibt an Mustern , die , wenn die Leitungsende mit der Zeichenfolge , bevor abgestimmt werden $
. Beispiel:
grep you$ grep.txt
Ergebnis:
1: Hello, how are you 3: Nice to meet you
Einpacken
grep
ist ein leistungsstarkes Tool zum Suchen von Dateien im Terminal. Wenn Sie wissen, wie es verwendet wird, können Sie Dateien einfach über das Terminal finden.
Mit diesem Tool sind weitere Optionen verbunden. Sie können mit finden man grep
.