GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verwenden Sie grep unter Linux

Eine der am häufigsten verwendeten Operationen im Linux-Terminal ist das Durchsuchen von Textdateien und das Filtern von Standardausgaben oder Fehlerströmen. Linux bietet ein großartiges Tool, mit dem wir diese Aufgabe problemlos lösen können – grep. In diesem Artikel behandeln wir die häufigsten Anwendungsfälle für grep, die Ihren Alltag definitiv vereinfachen werden.

Was ist grep

Grep steht für Global Regular Expression Print. Dies ist ein sehr praktisches Dienstprogramm, wenn es darum geht, eine große Menge von Textdateien (z. B. Protokolle) zu durchsuchen.

Grep ist der nützlichste Befehl unter Linux/Unix für Systemadministratoren, Entwickler und DevOps-Ingenieure. Der Hauptzweck dieses Tools besteht darin, in einer bestimmten Datei nach Zeichenfolgen oder Mustern zu suchen oder die Ausgabe anderer Befehle zu filtern.

Dieses oben erwähnte Muster wird als regulärer Ausdruck bezeichnet.

Der Befehl grep gibt eine Zeile mit der Zeichenfolge an das Terminal aus, wenn er eine Übereinstimmung mit der Suchanfrage findet.

Es gibt viele verschiedene Beispiele für die Verwendung von grep, also schauen wir uns an, wie und wann Sie es verwenden können.

Installation von grep unter Linux

Normalerweise ist grep in den meisten Linux-Systemen und sogar kleinen Docker-Containern installiert. Aber wenn Sie es nicht auf Ihrem System installiert haben, können Sie es zum Beispiel mit dem folgenden Befehl tun:

apt-get updateapt-get install -y grep

Beispiele für die Nutzung von grep

In diesem Teil des Artikels behandeln wir die häufigsten Beispiele für die Verwendung von grep.

Eine Befehlsausgabe filtern

Sie können den grep-Befehl zum Suchen und Drucken jeder Zeile aus jeder Linux-Befehlsausgabe verwenden, die mit dem angegebenen Muster übereinstimmt.

In diesem Beispiel prüfen wir, welche Python 3-Pakete wir in unserem Ubuntu-System haben:

dpkg -l | grep python3

In diesem Beispiel:

  • dpkg -l druckt alle installierten Pakete
  • grep filtert dpkg nur Strings ausgeben und drucken, die python3 enthalten Zeichenfolge

Auf die gleiche Weise können Sie die CPU-Modellinformationen anzeigen, zum Beispiel:

grep -i 'Model' /proc/cpuinfo

Suchzeichenfolge innerhalb einer Datei

In diesem Beispiel sucht der Befehl grep nach der Zeichenfolge „root“ in der Datei „/etc/passwd“ und gibt sie aus, wenn die Zeichenfolge gefunden wurde.

Normalerweise verwenden wir diesen Befehl, um zu prüfen, ob das System über ein Benutzerkonto mit dem angegebenen Namen verfügt (Beispiel:root in out): 

grep root /etc/passwd

Mehrere Dateien durchsuchen

Um die Zeichenfolge in mehreren Dateien gleichzeitig herauszufinden, verwenden Sie den Befehl grep und geben Sie die Dateinamen in einer einzigen Zeile an. Sie können reguläre Ausdrücke verwenden, um Dateien nach Masken zu durchsuchen.

Laden wir das öffentlich zugängliche Apache access.log herunter:

 mkdir -p /var/log/httpd
 cd /var/log/httpd
 wget http://www.almhuette-raith.at/apache-log/access.log 

Lassen Sie uns nun diese Datei in mehrere Dateien um 10000 Zeilen in Datei aufteilen:

Jetzt können wir die Dateien nach 500 HTTP-Serverfehler durchsuchen:

grep ' 500 ' xac xad

Um in allen Dateien innerhalb des aktuellen Arbeitsverzeichnisses zu suchen, verwenden Sie * nach dem Muster.

Im folgenden Beispiel sucht der Befehl grep in allen Dateien nach 500 Serverfehlern:

grep ' 500 ' *

Mit dem -w Option im Befehl grep können Sie nach Dateien suchen, die ein Wortmuster enthalten:

grep -w 'Windows XP' *

Der Befehl grep ist intelligent genug, um uns die Suche unabhängig von der Groß- und Kleinschreibung des Suchmusters zu ermöglichen.

Dazu müssen wir -i verwenden als Argument.

Hier ist das gleiche Beispiel, aber jetzt filtern wir ohne Berücksichtigung der Groß-/Kleinschreibung:

grep -i -w 'windows xp' *

Ausgabedateien mit Suchmuster

Sie können -l verwenden Option zum Anzeigen aller Dateinamen, die das gesuchte Muster enthalten:

grep -l -i -w 'windows xp' *

Treffer pro Datei zählen

Wenn Sie wissen möchten, wie oft Ihr Muster in allen Dateien übereinstimmt, fügen Sie den -c hinzu Möglichkeit:

grep -c -i -w 'windows xp' *

Anzahl der Zeilen vor dem gesuchten Muster

Um die Zeilen in einer Datei vor dem Suchmuster anzuzeigen, fügen Sie -B hinzu Argument, gefolgt von der Anzahl der Zahlen, die Sie aus der Datei abrufen möchten:

grep -B 3 -i -w 'windows xp' xaf

Anzahl der Zeilen nach dem gesuchten Muster

Ebenso können Sie -A verwenden Argument, um die Anzahl der Zeilen anzugeben, die nach dem gesuchten Muster gedruckt werden sollen:

grep -A 3 -i -w 'windows xp' xaf

Zeilennummer für Suchmusterübereinstimmung drucken

Um die Zeilennummer des gefundenen Suchmusters anzuzeigen, können Sie -n verwenden Argument:

grep -n -i -w 'windows xp' xaf

Übereinstimmung mit dem Anfang der Zeichenfolge

Im folgenden Beispiel verwenden wir den grep-Befehl, um alle Anfragen zu finden, die von der spezifischen IP-Adresse stammen.

Alle gesuchten Zeilen sollten mit 5.34.180.192 beginnen Laufzeit.

grep "^5.34.180.192" xaf

Übereinstimmung des Endes der Zeichenfolge

Fügen Sie $ hinzu bis zum Ende des Musters, um Zeilen zu finden, die mit der gesuchten Zeichenfolge enden:

grep "Chrome/62\" \"-\"$" xaf

Sobald unser Suchstring " enthält Symbole, maskieren wir sie mit \ .

Wir können grep verwenden, um mehrere Muster gleichzeitig zu durchsuchen. Fügen Sie -e hinzu Argument vor jedem Suchmuster:

grep -e "Chrome/62\" \"-\"$" -e "15/Mar/2021:08:35:23" xaf

Hier suchen wir alle Zeichenfolgen in der Datei, die auf Chrome/62" "-" enden UND spezifisches Datum und Uhrzeit enthalten 15/Mar/2021:08:35:23 .

Ausgabefarbe ändern

Da die farbige Ausgabe die Lesbarkeit erhöht, können Sie sie in Ihre Lieblingsfarbe ändern, indem Sie GREP_COLOR einstellen Umgebungsvariable:

GREP_COLOR='1;35' grep --color=always 'admin' /etc/passwd

Weitere Informationen über die GREP_COLOR-Variable finden Sie in der offiziellen grep-Dokumentation.

Zusammenfassung

Der Befehl grep ist äußerst nützlich, wenn es darum geht, den Inhalt der Textdateien oder das Ausgabeergebnis von Befehlen zu filtern. In diesem Artikel haben wir die am häufigsten verwendeten grep-Befehle behandelt, die Ihre Shell-Erfahrung optimieren werden.

Wir hoffen, dass dieser Artikel für Sie nützlich war. Wenn ja, helfen Sie uns bitte, es in der Welt zu verbreiten.


Linux
  1. So verwenden Sie den Linux-Grep-Befehl

  2. So verwenden Sie den grep-Befehl unter Linux/UNIX

  3. So verwenden Sie den Disown-Befehl unter Linux

  4. So verwenden Sie den Su-Befehl unter Linux

  5. So verwenden Sie den Linux-Bildschirmbefehl

So verwenden Sie den grep-Befehl unter Debian 10

So verwenden Sie den Befehl sysctl unter Linux

So verwenden Sie den Befehl zum Herunterfahren von Linux

So verwenden Sie den Mkdir-Befehl unter Linux

So verwenden Sie den Jobs-Befehl unter Linux

Verwendung des grep-Befehls unter Linux