So verwenden Sie den Grep-Befehl in Linux

Verstehen des grep-Befehls mit praktischen Beispielen zum einfachen Filtern und Anzeigen des Dateiinhalts

GREP steht für „Global Regular Expression Print“. Es ist ein nützliches Befehlszeilen-Dienstprogramm, das von Linux bereitgestellt wird, um nach der Textzeile zu suchen, die dem vom Benutzer bereitgestellten Muster entspricht.

grep nimmt die Eingabe vom Benutzer in Form von Zeichenfolgen oder Wörtern entgegen, die der Benutzer in einer bestimmten Datei suchen möchte. Der Befehl überprüft dann die vom Benutzer angegebene Datei auf dieses Muster und gibt dann die Zeilen zurück, die dem bereitgestellten Muster entsprechen.

Es leistet hervorragende Arbeit, indem es den Inhalt einer Datei filtert, wodurch unsere Aufgabe erleichtert wird, bestimmte Inhalte in einzelnen oder mehreren Dateien gleichzeitig zu durchsuchen.

Lassen Sie uns in diesem Artikel die Funktionsweise des grep Befehl mit einigen praktischen Beispielen im Detail.

Optionen erhältlich mit grep Befehl

Dies sind einige der grundlegenden Optionen, die Sie häufig mit dem grep Befehl.

MöglichkeitBeschreibung
-ichFür eine Suche ohne Beachtung der Groß-/Kleinschreibung
-RUm rekursiv nach allen Dateien im angegebenen Verzeichnis und seinen Unterverzeichnissen zu suchen
-CSo zeigen Sie an, wie oft eine Zeichenfolge insgesamt angezeigt wird
-vNicht übereinstimmende Zeilen anzeigen
-wFiltern Sie nach diesem speziellen Wort, das separat verwendet wird

Verwendung der grep Befehl

grep Befehl wird normalerweise mit der Pipe verwendet (|) Dienstprogramm. Es kann mit der Shell-Pipe implementiert werden, wenn Sie es mit einigen anderen Linux-Befehlen verwenden möchten. Obwohl, grep kann auch einzeln ohne das Rohr verwendet werden (|) Dienstprogramm.

Sehen wir uns einige der grundlegenden Syntaxen der grep Befehl mit und ohne Pipe-Dienstprogramm.

Lassen Sie mich Ihnen zuerst die Beispieltextdatei zeigen, die ich verwenden werde, um das zu veranschaulichen grep Befehl.

INDIEN IST EIN SCHÖNES LAND DER FRIEDENSLIEBIGEN MENSCHEN. Indien steht auf den drei Säulen Legislative, Exekutive und Judikative. Indien ist ein wunderschönes Land friedliebender Menschen. Indien kümmert sich um die Menschen, da seine Ressource kartesische Koordinaten Bedeutung aller kartesischen Koordinaten hat. Es folgen zwei leere Zeilen. Die Verwendung eines Ochsenkarrens ist im Dorf für die landwirtschaftlichen Arbeiten ein alltäglicher Anblick. Dies ist das Ende der Beispieldatei.

grep verwendet mit Rohr ( | )Dienstprogramm

grep Der Befehl kann zusammen mit anderen Linux-Befehlen mithilfe der Shellpipes implementiert werden. Wie, mit dem Katze Befehl, um den Inhalt der Datei anzuzeigen, aber gleichzeitig die Ausgabe mit dem grep Befehl, um nur den Inhalt anzuzeigen, den Sie sehen möchten. Dies wird klarer, wenn wir das Beispiel durchgehen.

Syntax:

[Befehl] | grep [Zeichenfolge]

Beispiel:

cat sample.txt | grep gesetzgeber

Hier habe ich die Katze Befehl, um einige Zeilen aus der Datei „sample.txt“ anzuzeigen. Es sollen nur die Zeilen angezeigt werden, die das Wort „Gesetzgeber“ enthalten und die restlichen Zeilen ignorieren.

Ausgabe:

gaurav@ubuntu:~/workspace$ cat sample.txt | grep legislature india steht auf den drei Säulen Legislative, Exekutive und Judikative. gaurav@ubuntu:~/workspace$

grep gebraucht ohne Rohr ( | )Dienstprogramm

grep kann sogar direkt als Einzelbefehl verwendet werden, ohne die Pipe zu verwenden ( | ) Dienstprogramm.

Syntax:

grep [string_to_be_searched] [Dateiname]

Beispiel:

grep India sample.txt

Ausgabe:

Indien ist ein wunderschönes Land friedliebender Menschen. Indien kümmert sich um die Menschen als Ressource

Daher habe ich die grep Befehl direkt, um die Zeilen zu filtern, die die Zeichenfolge ‚India‘ aus der Textdatei ‚sample.txt‘ enthalten.

Groß-/Kleinschreibung bei der Suche mit grep Befehl

Linux ist sehr vorsichtig mit der Groß-/Kleinschreibung, wenn wir die Befehle auf dem Terminal abfeuern. Dies erfordert, dass der Benutzer auf die Groß-/Kleinschreibung der Zeichenfolge, die in den Befehl eingefügt wird, achten muss.

Lassen Sie uns dies an einem Beispiel sehen.

grep peace sample.txt

In diesem Fall erhalten wir keine Ausgabe, da in der Beispieldatei kein Wort wie „Frieden“ vorhanden ist. Wir haben das Wort „Frieden“ mit einem großen „P“. Das Wort ist das gleiche, aber wenn wir das verwenden grep Befehl ohne Option sucht es nach der genauen Übereinstimmung in der Datei und ignoriert alle Änderungen in der Groß-/Kleinschreibung.

Um diese Mehrdeutigkeit zu vermeiden, können Sie einfach die -ich Option, die buchstäblich sagt grep Befehl „Vergiss den Fall, in dem ich die Zeichenfolge eingegeben habe, und suche einfach nach allen passenden Mustern in der Datei.“

Syntax:

grep -i [Zeichenfolge] [Dateiname]

Beispiel:

grep -i peace sample.txt

Ausgabe:

INDIEN IST EIN SCHÖNES LAND DER FRIEDENSLIEBIGEN MENSCHEN. Indien ist ein wunderschönes Land friedliebender Menschen.

Alle übereinstimmenden Zeilen werden unabhängig von der Groß-/Kleinschreibung der übereinstimmenden Zeichenfolge angezeigt.

Rekursive Suche mit grep Befehl

Der -R Option sucht nach allen Dateien in einem Verzeichnis und all seinen Unterverzeichnissen, die dem vom Benutzer im Befehl angegebenen Zeichenfolgenmuster entsprechen.

Syntax:

grep -i -r [Zeichenfolge] [Dateipfad]

Beispiel:

grep -i -r Kater /home/gaurav/workspace

Die Zeichenfolge hier ist ‚tomcat‘ und wird im Verzeichnis-Arbeitsbereich gesucht. Alle Unterverzeichnisse und Dateien im Verzeichnis „workspace“ werden ebenfalls gescannt, um dem bereitgestellten Zeichenfolgenmuster zu entsprechen.

Ausgabe:

./context_log.policy:// catalina.policy - Sicherheitsrichtlinienberechtigungen für Tomcat 7 ./context_log.policy:// Hinweis: Wenn sich tomcat-juli.jar in ${catalina.base} und nicht in ${catalina.home befindet }, ./context_log.policy:// grant codeBase "file:${catalina.base}/bin/tomcat-juli.jar" {..} ./context_log.policy:grant codeBase "file:${catalina.home }/bin/tomcat-juli.jar" { ./context_log.policy: Berechtigung java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.websocket.server"; ./context.xml: ./catalina.properties:# - Tomcat Bootstrap JARs ./catalina.properties:# - Tomcat API JARs ./catalina.properties:# - Tomcat JARs ./catalina.properties:# - Gemeinsame Nicht-Tomcat JARs ./catalina.properties:org.apache.catalina.startup.TldConfig.jarsToSkip=tomcat7-websocket.jar ./catalina.properties:tomcat.util.buf.StringCache.byte.enabled=true ./catalina.properties:# tomcat.util.buf.StringCache.char.enabled=true ./catalina.properties:#tomcat.util.buf.StringCache.trainThreshold=500000 ./catalina.properties:#tomcat.util.buf.StringCache.cacheSize=5000 . /server.xml: pathname="conf/tomcat-users.xml" /> ./server.xml: 

HINWEIS: Bei Verwendung des -R Option mit der grep Befehl müssen wir den Pfad der Datei und nicht den Dateinamen angeben

Suche nach ganzen Wörtern nur mit grep Befehl

Oftmals ist es der Fall, dass Sie nach einem Wort suchen, aber Ihr Terminal mit den passenden Zeilen füllen, die Ihr passendes Wort enthalten, aber nicht als einzelnes Wort. Möglicherweise sehen Sie die Zeilen, die einige Wörter enthalten, deren Unterteil die von Ihnen eingegebene Zeichenfolge ist.

Verwechselt damit? Keine Sorge, es ist viel einfacher zu verstehen, wenn Sie das Beispiel erhalten.

Beispiel:

Hier möchte ich nach einem einzelnen Wort ‚Warenkorb‘ suchen und alle zu diesem Wort passenden Zeilen in der Datei ‚sample.txt‘ anzeigen.

grep -i cart sample.txt

Ausgabe:

Kartesische Koordinaten Bedeutung aller kartesischen Koordinaten. Die Verwendung eines Ochsenkarrens ist ein alltäglicher Anblick im Dorf für die landwirtschaftlichen Arbeiten Der Karren ging verloren, als der Junge ihn losließ.

In der Ausgabe können Sie feststellen, dass das Wort „Kartesisch“ auch das Wort „Warenkorb“ enthält und somit auch die Zeilen mit dem Wort „Kartesisch“ angezeigt werden, obwohl wir sie nicht anzeigen möchten.

Du kannst den ... benutzen -w Option mit der grep Befehl, um diese Mehrdeutigkeit zu lösen.

Syntax:

grep -i -w [Zeichenfolge] [Dateiname]

Beispiel:

grep -i -w cart sample.txt

Ausgabe:

Die Verwendung eines Ochsenkarrens ist im Dorf für die landwirtschaftlichen Arbeiten ein alltäglicher Anblick. Der Karren verschwand, als der Junge ihn losließ. 

Wenn Sie nun die –w Option mit grep Sie erhalten nur die Zeilen, in denen das Wort „Warenkorb“ als Ganzes verwendet wird.

Invertierte Suche mit grep Befehl

grep Der Befehl kann auch umgekehrt verwendet werden. Wir können das gebrauchen grep Befehl umgekehrt, indem Sie die übereinstimmenden Zeilen ausblenden und nur die Zeilen anzeigen, in denen die Übereinstimmung nicht gefunden wird. Sie können dies tun, indem Sie die -v Option mit der grep Befehl.

Syntax:

grep -i -v [Zeichenfolge] [Dateiname]

Beispiel:

grep -i -v Ressourcenbeispiel.txt

Ausgabe:

INDIEN IST EIN SCHÖNES LAND DER FRIEDENSLIEBIGEN MENSCHEN. Indien steht auf den drei Säulen Legislative, Exekutive und Judikative. Indien ist ein wunderschönes Land friedliebender Menschen. kartesische Koordinaten Bedeutung aller kartesischen Koordinaten. Die Verwendung eines Ochsenkarrens ist im Dorf für die landwirtschaftlichen Arbeiten ein alltäglicher Anblick. Dies ist das Ende der Beispieldatei.

In der Ausgabe werden alle anderen Zeilen angezeigt, außer der Zeile, die das Wort „Ressource“ enthält.

Zählen des Vorkommens der übereinstimmenden Zeichenfolge

Die Ausgabe des grep Befehl ist normalerweise sehr lang, wenn die Daten in der Datei umfangreich sind. Je mehr Übereinstimmungen, desto länger sind die Ausgaben der grep Befehl. Linux bietet Ihnen eine Option, mit der Sie die Anzahl der Vorkommen der Übereinstimmung anzeigen können.

Syntax:

grep -i -c [Zeichenfolge] [Dateiname]

Beispiel:

grep -i -c indien sample.txt

Ausgabe:

gaurav@ubuntu:~/workspace$ grep -i -c india sample.txt 4 gaurav@ubuntu:~/workspace$

Hier ist die Ausgabe eine Zahl, die der Häufigkeit des Vorkommens des Wortes „Indien“ in der Datei sample.txt entspricht.

HINWEIS: Ich habe das benutzt -ich Option in jedem Beispiel, um bei der Groß-/Kleinschreibung auf Nummer sicher zu gehen. Falls Sie sich bei der Groß-/Kleinschreibung des gesuchten Wortes sicher sind, können Sie das -ich Möglichkeit.

Fazit

Wir haben die grundlegenden Verwendungen der grep Befehl auf den Linux-Systemen in diesem Tutorial. Wir haben auch gelernt, verschiedene Inhalte anzuzeigen, die unseren Anforderungen am besten entsprechen, und das Terminal nicht mit vielen Warteschlangen zu überfüllen. grep Befehl wird sicherlich zeitsparend sein, wenn er zum Scannen großer Datensätze verwendet wird.