So verwenden Sie Grep, um rekursiv zu suchen

So verwenden Sie Grep, um rekursiv zu suchen
Die Anweisung „Grep“ war unter Linux -Benutzern für seine Suchfunktionen sehr bekannt. Die Abfrage „Grep“ funktioniert anders, während sie mit unterschiedlichen Flags für die rekursive Suche verwendet werden. Das am häufigsten verwendete Flag des GREP-Befehls ist „-r“, was impliziert, im aktuellen Verzeichnis zu suchen. Lassen Sie uns einige Beispiele für eine rekursive Suche in Ubuntu 20 durchführen.04 Verwenden des GREP -Befehls. Beginnen Sie mit der Start der Terminalanwendung über den T -Verknüpfungsschlüssel "Strg+Alt+T".

Suche ohne Verzeichnispfad

Der einfachste und einfachste Weg für eine rekursive Suche ist die Verwendung eines einfachen „-r“ -Flag. Wir haben den Befehl grep verwendet, um in den Dateien nach einem Muster „John“ zu suchen. Das Flag „-r“ durchsucht alle Dateien, die sich innerhalb des Heim- oder aktuellen Verzeichnisses von Ubuntu 20 befinden.04 und auch in den Unterordnern des Heimverzeichnisses. Sie können sehen, dass die Dateipfade mit der jeweiligen Übereinstimmung angezeigt werden und auch der übereinstimmende Text in dieser Datei angezeigt werden. Die ersten beiden Dateien befinden sich innerhalb des Unterverzeichnisses des Dokumente des Home -Ordners, während sich die beiden anderen im Heimverzeichnis befinden. Dies bedeutet, dass es auch von jedem Unterordner des aktuellen Verzeichnisses gesucht wurde.

$ grep -r "John"

Suchen wir rekursiv nach einem anderen Wort, „Herz“, indem wir die GREP-Anweisung mit der Flag „-r“ verwenden. Die Ausgabe des Befehls zeigt, dass er in den beiden Dateien gefunden wurde. Eine Datei befindet.e., Unterlagen. Beide Dateien enthalten denselben Namen.

$ grep -r "Herz"

Schauen wir uns eine andere gleiche Instanz mit einem anderen Matching -Muster innerhalb des GREP -Befehls an. Deshalb haben wir das Muster „CSS“ verwendet, um rekursiv aus dem System zu suchen.

$ grep -r "CSS"

Eine andere Möglichkeit besteht darin, das Zeichen "*" zu verwenden, um über alle Ordner und Unterordner zu suchen. Wir haben also das einfache Zeichen „A“ durchsucht und es in jeder Textdatei des Heimverzeichnisses und seiner Unterordner gefunden.

$ grep -r "a" *

Lassen Sie uns eine rekursive Suche mit dem GREP -Befehl jedoch auf andere Weise durchführen. Wir werden ein Muster durchsuchen, während der Text in den Dateien im Terminal nicht mit dem Flag „-l“ in der Anweisung angezeigt wird. In der Ausgabe wird nur der Dateiname oder Pfad angegeben, der zeigt, dass das angegebene Muster gefunden wurde. Wir haben also die gleiche Abfrage mit dem Hinzufügen des "-l" -Flags ausprobiert, um nach dem Muster "CSS" zu suchen. Es zeigt die zugehörigen Dateien und ihre Pfade in der Ausgabe an.

$ grep -r -l "CSS"

Suche mit Verzeichnispfad

Jetzt werden wir die Arbeit des grep -rekursiven Befehls auf dem gegebenen Verzeichnispfad sehen. Wir werden also nach drei verschiedenen Mustern innerhalb der Unterabzeichnungen des Home -Ordners gesucht haben. Der Pfad zu den Download -Ordnern wurde im Bild innerhalb des GREP -Befehls angegeben. Wir haben nichts im Gegenzug, da das Muster nicht übereinstimmt oder gefunden wurde.

$ Grep -r CDD/Home/Linux/Downloads
$ Grep -r CSS/Home/Linux/Downloads
$ grep -r Poet/Home/Linux/Downloads

Suchen wir im Ordner Download nach einem anderen Muster „IS“, indem wir dieselbe Anweisung verwenden. Wir haben zwei Ausgänge für dieses Muster gefunden. Die Ausgabe zeigt die Dateipfade zusammen mit dem Text an. Es hat auch das übereinstimmende Muster hervorgehoben, ich.e., "Ist".

$ grep -r ist/home/linux/downloads

Wir haben ein anderes Muster durchsucht, „OK“ im Ordner Downloads und nur 1 Ausgabe im Gegenzug, da es nur mit einer einzelnen Datei übereinstimmt.

$ grep -r ok/home/linux/downloads

Das gleiche Muster „OK“ wurde diesmal aus dem verschiedenen Unterverzeichnis durchsucht, ich.e., Unterlagen. Der Befehl Grep gab nichts zurück, da der Ordner keine Datei mit einem bestimmten Muster „OK“ enthält.

$ grep -r ist/home/linux/dokumente

Sie können auch rekursiv nach dem Zeichenfolgenwert suchen. Wir haben also die IP -Adresse als Zeichenfolge angegeben und den Pfad erwähnt. In diesem Befehl werden alle Dateien und Ordner des Verzeichnisses „etc“ durchsucht, um das Zeichenfolgenmuster zu durchsuchen. Der Ausgang zeigt ein einzelnes Ergebnis.

$ grep -r “192.168.10.1 ” /etc /

Suchen Sie mehrere Muster

Wir hatten uns die Beispiele angesehen, um das einzelne Muster unter Verwendung der grep -rekursiven Anweisung zu suchen. Jetzt werden wir den Weg sehen, um mehrere Muster zu durchsuchen. Wir haben also den GREP-Befehl zusammen mit der Flag „-rw“ verwendet. Es zeigt die mehreren Suchanfragen an, um stattgefunden zu sein. Nach dieser Flagge können Sie auch den Pfad erwähnen. Wir haben es ohne den Weg zur Suche nach dem Heimverzeichnis und seinen Unterordnern verwendet. Das „-e“ -Flag wurde hier verwendet, um das einzelne Muster anzuzeigen. Sie können viele "-e" -Flags entsprechend der Anzahl der Muster verwenden, die Sie suchen möchten. Wir haben hier nur zwei Muster mit "-e" durchsucht. Wir haben die 4 Dateien in der Ausgabe gefunden, die übereinstimmt. Drei Dateien enthalten das Muster „CSS“ und 1 enthält das Muster „OK“ innerhalb.

$ grep -rw -e ok -e CSS

Sie können den Befehl grep auch verwenden, um mehrere Muster in der bestimmten Datei zu durchsuchen. Dafür müssen Sie die Flag „-rw“ aus der Abfrage entfernen und "-E" -Flags so oft hinzufügen, wie Sie möchten. Sie müssen jedoch den Dateinamen am Ende erwähnen, wie unten gezeigt. Es zeigt den gesamten Text aus der Datei an und zeigt das Matching -Muster hervor.

$ grep -e "großartig" -E "CSS" -E "ist" -e "Herz" neu.txt

Suche mit "Einfügen" Flag

Das Schlüsselwort des Flags inklusive wird verwendet, um die nur durchsuchten Dateitypen anzugeben. Es werden keine anderen Dateien durchsucht. Also konnten wir im ersten Fall nichts bekommen.

$ grep -r -rclude = ”*txt” „ok“/home/linux/
$ grep -r -rclude = ”*txt” „new“/home/linux/

In unserem zweiten Fall haben wir eine einzige Ausgabe gefunden.

Ein weiteres Muster, „CSS“, wurde zur rekursiven Suche verwendet und erzielte drei Ergebnisse, wie auf dem Bild demonstriert.

$ grep -r -include = ”*txt” „CSS“/home/linux/

Abschluss

Die rekursive Suche wurde in diesem Handbuch mit dem GREP -Befehl demonstriert. Der Befehl „Grep“ hat viele Flags verwendet, um bei einer rekursiven Suche anders zu arbeiten, ich.e., "-R" und "einschließen". Das Tutorial erläutert auch die rekursive Suche mit und ohne die im GREP -Befehl angegebenen Verzeichnispfade. Daher enthält dieser Artikel ein Bündel leicht zu erlernen Beispiele für seine Benutzer, um eine rekursive Suche am einfachsten zu lernen.