grep

Linux grep-Befehl

Linux grep-Befehl
Grep ist eines der praktischsten Werkzeuge, die Ihnen zur Verfügung stehen. Dieses Befehlszeilen-Dienstprogramm führt eine Suche in Nur-Text-Datensätzen durch. Grep ist eigentlich ein Akronym für „Globale Suche a rgleichförmig eAusdruck und pfärben”. Grep begann seine Reise als Teil der UNIX-Familie. Im Laufe der Zeit ist es jetzt für alle gängigen Plattformen wie Linux, Mac, BSD und sogar Windows verfügbar!

Hast du schon mal grep benutzt?? Meistens kann der grundlegende Grep-Trick die meiste Arbeit erledigen. grep bietet jedoch unzählige Möglichkeiten, die Suche durchzuführen und die Ausgabe auf eine besser nutzbare Version abzustimmen. In diesem Artikel schauen wir uns die Verwendung des grep-Befehls an.

Grep-Nutzung

Existenz verifizieren

Wenn Sie irgendeine Art von Linux-Distribution ausführen, haben Sie grep bereits installiert. Führen Sie den folgenden Befehl im Terminal aus.

grep --version

Dieser Befehl wird verwendet, um die Version von derzeit installiertem grep anzuzeigen. Jetzt brauchen wir eine Demo-Datei. In meinem Fall erzeuge ich eine Textdatei, die alle installierten Pakete auf meinem System enthält.

Grundlagen

Die grundlegende Verwendung von grep folgt der folgenden Struktur.

grep

Oder verwenden Sie zum leichteren Verständnis diese.

grep -e -f

In diesem Fall führt grep eine Suche in der Datei durch und gibt alle Zeilen aus, die das Muster (Suchbegriff) enthalten.

grep python ~/Desktop/PackageList.TXT

Grep durchsuchte die Datei „PackageList.txt“ habe ich zuvor generiert und alle Zeilen gedruckt, die „python“ enthalten.

Dieselbe Operation kann auf andere Weise durchgeführt werden. Schauen Sie sich das folgende Beispiel an.

Katze ~/Desktop/PackageList.txt | grep python

Hier habe ich mit dem Befehl „cat“ den Inhalt der Datei „PackageList“ gesendet.txt“ zu grep. Mit der Ausgabe von cat hat grep die Suche durchgeführt und die Zeilen gedruckt, die den Suchbegriff enthalten.

Jetzt kommt eine lustige Sache. Sie können buchstäblich mehrere grep-Befehle einfach so stapeln.

Katze ~/Desktop/PackageList.txt | grep - | grep p | grep python

Das erste grep filtert bis zu den Zeilen mit einem Bindestrich, das zweite filtert bis zu den Zeilen mit p und das letzte grep filtert bis zu den Zeilen mit python. Macht Sinn?

Groß-/Kleinschreibung

Bei der Durchführung einer Suche ist die Groß-/Kleinschreibung eine wichtige Frage a. Standardmäßig wird bei grep die Groß-/Kleinschreibung beachtet.

Wenn Sie beispielsweise nach „Python“ suchen, werden keine Ergebnisse angezeigt.

Katze ~/Desktop/PackageList.txt | grep Python

Um die Groß-/Kleinschreibung von grep „unempfindlich“ zu machen, fügen Sie die folgende Option hinzu.

Katze ~/Desktop/PackageList.txt | grep -i Python

Dateisuche

Nehmen wir an, Sie haben ein Verzeichnis mit zahlreichen Textdateien. Ihr Ziel ist es, die Datei(en) zu identifizieren, die ein Muster (Suchbegriff) enthalten oder nicht.

Ich finde diese Methode sehr hilfreich, wenn ich in einem Stapel von Protokolldateien suche. Da ich nicht die Zeit habe, jede einzelne Datei manuell zu öffnen und zu überprüfen, muss ich grep die Arbeit für mich erledigen.

Um Dateien aufzulisten, die die Übereinstimmung enthalten, verwenden Sie das Flag „-l“.

grep -l /suchen/verzeichnis/*

Wie das Ergebnis vermuten lässt, ist der Begriff „Python“ in allen 3 Dateien im Verzeichnis „Desktop“ vorhanden.

Um Dateien ohne Übereinstimmung aufzulisten, verwenden Sie das Flag „-L“.

grep -L /suchen/verzeichnis/*

"Keine Übereinstimmung.txt“ ist die einzige Datei, die den Begriff „python“ nicht enthält.

Invertierte Suche

Das Standardverhalten von grep besteht darin, nur die Zeilen mit dem passenden Muster zu drucken, richtig? Es ist Zeit, den Prozess umzukehren. Diesmal drucken wir nur die Linien OHNE das passende Muster.

Übergeben Sie einfach die Option "-v" an grep.

Katze ~/Desktop/PackageList.txt | grep -i -v Python

Drucken von Zeilen vor/nach dem Spiel

Standardmäßig druckt grep nur die Zeile, die dem Suchmuster entspricht. Mit dieser Technik können Sie grep anweisen, auch vor/nach dem Spiel Zeilen zu drucken.

Verwenden Sie zum Drucken von Zeilen vor dem Spiel die folgende Struktur.

grep -B

Hier ist 5 die Zahlenzeile, die grep VOR der passenden Zeile ausgibt.

Verwenden Sie zum Drucken von Zeilen nach dem Spiel die folgende:.

grep -A

Wie wäre es, sowohl vor als auch nach der passenden Zeile zu drucken?? Verwenden Sie in diesem Fall das Flag „-C“.

grep -C

Zeilennummer

Wenn grep die Ausgabe anzeigt, wird die Zeilennummer nicht erwähnt. Verwenden Sie für die zugehörige(n) Zeilennummer(n) das Flag „-n“.

grep -n

Einzelnes Wort

Wenn das Flag „-w“ verwendet wird, behandelt grep das Muster als ganzes Wort.

grep -w

Einschränken der grep-Suche

Grep ermöglicht die Angabe der Anzahl der Zeilen, die in der Datei gesucht werden sollen. Diese Methode ist nützlich, wenn Sie mit einer großen Datei arbeiten (wie dem Systemprotokoll). Verwenden Sie das Flag „-m“.

grep -m

Rekursive Suche

Es ist eine der hilfreichsten Funktionen, die grep bei starker Nutzung bietet. Grep kann rekursiv ein Verzeichnis durchsuchen und alle Übereinstimmungen aus allen Dateien finden, mit denen es konfrontiert ist.

grep -R

Oder,

grep -r

Ich finde oft, dass ich diese rekursive Funktion zusammen mit dem Flag "-l" verwende.

Ruhemodus

Grep kann im „stillen“ Modus ausgeführt werden. Im „stillen“ Modus druckt grep keine Ausgabe an das Terminal. Stattdessen wird 0 (zumindest eine Übereinstimmung gefunden) oder 1 (keine Übereinstimmung gefunden) zurückgegeben.

grep -q
echo $?

Regex

Grep erlaubt auch Regex-Suchen (reguläre Ausdrücke). Dies fügt grep als Suchwerkzeug eine ganz neue Ebene der Komplexität und Benutzerfreundlichkeit hinzu.

Mit Klammern können Sie beispielsweise gleichzeitig nach „too“ und „two“ suchen.

Katze ~/Desktop/gpl-3.0.txt | grep t[wo]o

Dieses nächste Beispiel druckt die Zeile nur, wenn die Übereinstimmung ganz am Anfang der Zeile auftritt.

grep ^GNU ~/Desktop/gpl-3.0.TXT

Um das Ende abzugleichen, verwenden Sie dieses.

grep dich$ ~/Desktop/gpl-3.0.TXT

Wenn Sie Perl Regex verwenden möchten, verwenden Sie das Flag „-P“. Es wird das Muster als Perl-Regex behandeln.

grep -P

Abschließende Gedanken

Grep bietet unzählige Möglichkeiten, die Suchfunktion anzupassen. Die Verfügbarkeit von Regex eröffnet einen ganz neuen Horizont für die potenzielle Verwendung von grep. Das Coole daran ist, dass Sie sowohl allgemeine als auch Perl-Regex verwenden können; womit du dich wohl fühlst.

Für die detaillierteste Erklärung konsultieren Sie immer die Manpage.

Mann grep

Prost!

Beste Spiele zum Spielen mit Handtracking
Oculus Quest hat kürzlich die großartige Idee des Hand-Trackings ohne Controller vorgestellt. Mit einer ständig steigenden Anzahl von Spielen und Akti...
So zeigen Sie OSD-Overlay in Vollbild-Linux-Apps und -Spielen an
Das Spielen von Spielen im Vollbildmodus oder die Verwendung von Apps im ablenkungsfreien Vollbildmodus kann Sie von relevanten Systeminformationen ab...
Top 5 Karten zur Spielaufnahme
Wir alle haben Streaming-Gameplays auf YouTube gesehen und geliebt. PewDiePie, Jakesepticye und Markiplier sind nur einige der Top-Gamer, die Millione...