Grep Command Tutorial - So suchen Sie unter rekursiver Suche unter Linux und Unix nach einer Datei

grepsteht 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.

grepEs gibt viele Optionen, mit denen wir verschiedene suchbezogene Aktionen für Dateien ausführen können. In diesem Artikel erfahren Sie, wie Sie grepmit den verfügbaren Optionen und den grundlegenden regulären Ausdrücken zum Durchsuchen von Dateien arbeiten.

Wie benutzt man grep

grepKann 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 grepBefehl 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 grepmehr 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 -cimmer 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 grepZeichenfolgen, die das angegebene Muster enthalten. Dies bedeutet, dass grep yo grep.txtdie gleichen Ergebnisse gedruckt werden, grep yo grep.txtweil "yo" in Ihnen gefunden werden kann. Ebenso 'du'.

Mit der Option -w, grepstellt 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 grepdie Zeile gedruckt, in der das übereinstimmende Muster gefunden wird. Mit dieser Option -owird 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 1bedeutet eine Zeile nach der übereinstimmenden Zeile und -B 1eine Zeile vor der übereinstimmenden Zeile.

Es gibt auch eine -COption (--context), die gleich -A+ ist -B. Der übergebene Wert -Cwürde für -Aund verwendet -B.

9. -R(--dereference-recursive) - rekursive Suche

Standardmäßig grepkönnen keine Verzeichnisse durchsucht werden. Wenn Sie dies versuchen, wird eine Fehlermeldung angezeigt ("Ist ein Verzeichnis"). Mit dieser Option -Rwird 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

grepErmöglicht auch grundlegende reguläre Ausdrücke zum Festlegen von Mustern. Zwei davon sind:

1. ^pattern- Zeilenanfang

Dieses Muster bedeutet, dass das grepmit 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

grepist 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.