12 Praktische Beispiele für Linux Grep -Befehl

12 Praktische Beispiele für Linux Grep -Befehl

Wurden Sie jemals mit der Aufgabe konfrontiert, nach einer bestimmten Zeichenfolge oder einem bestimmten Muster in einer Datei zu suchen, haben jedoch keine Ahnung, wo Sie anfangen sollen? Nun, dann ist hier ist Grep zur Rettung!

Grep ist ein leistungsstarker Dateimustersucher, der bei jeder Verteilung von ausgestattet ist Linux. Wenn es aus irgendeinem Grund nicht in Ihrem System installiert ist, können Sie es einfach über Ihren Paketmanager wie gezeigt installieren.

$ sudo apt installieren grep [on Debian, Ubuntu und Minze] $ sudo yum installieren Sie Grep [auf Rhel/Centos/Fedora Und Rocky Linux/Almalinux] $ sudo entstehen -a sys -apps/grep [on Gentoo Linux] $ sudo apk fügen Grep hinzu [auf Alpine Linux] $ sudo pacman -s grep [auf Arch Linux] $ sudo zypper installieren Sie Grep [on OpenSuse] 

Ich habe festgestellt, dass der einfachste Weg, Ihre Füße nass zu machen, mit dem GREP -Befehl ist einfach eintauchen und einige Beispiele in der realen Welt verwenden.

1. Suchen und suchen Sie Dateien unter Linux

Nehmen wir an, Sie haben gerade eine neue Kopie des neuen installiert Ubuntu auf Ihrer Maschine und dass Sie geben werden Python einen Schuss skript.

Sie haben das Web gesucht, um nach Tutorials zu suchen, aber Sie sehen, dass es zwei verschiedene Versionen von gibt Python und Sie wissen nicht, welche Version von Python vom Installateur auf Ubuntu installiert ist oder ob Module installiert wurden.

Führen Sie einfach den folgenden DPKG -Befehl mit mit Grep wie gezeigt:

# dpkg -l | Grep -i Python
Finden von Dateien mit GREP -Befehl
II libpython3-Stdlib: AMD64 3.8.2-0UBUNTU2 AMD64 Interaktives hochrangiger objektorientierter Sprache (Standard-Python3-Version) ii libpython3.8: AMD64 3.8.10-0ubuntu1 ~ 20.04.5 AMD64 Shared Python Runtime Library (Version 3.8) II libpython3.8-minimale: AMD64 3.8.10-0ubuntu1 ~ 20.04.5 AMD64 Minimale Untergruppe der Python -Sprache (Version 3.8) II libpython3.8-stlib: AMD64 3.8.10-0ubuntu1 ~ 20.04.5 AMD64 Interaktive hochgradige objektorientierte Sprache (Standardbibliothek, Version 3.8) II Python-apt-Kommon 2.0.0ubuntu0.20.04.8 All Python-Schnittstelle zu libapt-pkg (Lokales) II Python3 3 3.8.2-0UBUNTU2 AMD64 Interaktives hochrangige objektorientierte Sprache (Standard-Python3-Version) II Python3-apport 2.20.11-0ubuntu27.24 All Python 3 Bibliothek für Apport Crash Report Handling II Python3-apt 2.0.0ubuntu0.20.04.8 AMD64 Python 3 Schnittstelle zu libapt-pkg II Python3-aptdaemon 1.1.1+bzr982-0ubuntu32.3 Alle Python 3 -Module für den Server und Client von Aptdaemon II Python3-aptdaemon.gtk3widgets 1.1.1+bzr982-0ubuntu32.3 Alle Python 3 GTK+ 3 Widgets ausführen, um einen Aptdaemon Client II Python3-Blinker 1 auszuführen 1.4+dfsg1-0.3UBUNTU1 Alle schnellen, einfachen Objekt-zu-Objekt- und Broadcast-Signalbibliothek II Python3-Brlapi: AMD64 6.0+DFSG -4UBUNTU6 AMD64 Braille Display -Zugriff über Brlty - Python3 -Bindungen… 

Zuerst rannten wir dpkg -l, die installierten Listen *.Deb Pakete auf Ihrem System. Zweitens haben wir diese Ausgabe an die Ausgabe angelegt grep -i Python, in dem einfach lautet: „Gehen Sie zu Grep und filtern Sie alles mitPython' drin.”

Der -ich Option besteht darin, den Fall zu ignorieren, wie Grep ist Fallempfindlichkeit. Verwendung der -ich Option ist eine gute Angewohnheit, sich darauf einzulegen, es sei denn, Sie versuchen, eine spezifischere Suche zu nageln.

2. Suche und Filterdateien unter Linux

Der Grep kann auch verwendet werden, um in einzelnen Dateien oder mehreren Dateien zu suchen und zu filtern. Nehmen wir dieses Szenario:

Sie haben Probleme mit Ihrem Apache -Webserver, Und Sie haben sich an eines der vielen großartigen Foren im Netz gewandt und um Hilfe gebeten.

Die freundliche Seele, die Ihnen antwortet, hat Sie gebeten, den Inhalt Ihrer zu veröffentlichen /etc/apache2/apache2.Conf Datei. Wäre es nicht einfacher für Sie, der Typ, der Ihnen hilft und alle lesen, wenn Sie alle kommentierten Zeilen entfernen könnten? Ja, du kannst! Führen Sie das einfach aus:

# grep -v ^\#/etc/apache2/apache2.conf | Grep . 

Der -v Option erzählt Grep Um seine Ausgabe umzukehren, bedeutet # kommentierte Zeilen.

Beachten Sie, dass wir auch verwendet haben Grep . am Ende, um die Ausgabe aller leeren Linien zu verbergen. Auf diese Weise sehen wir nur die Konfigurationseinstellungen in unserem Terminal.

Druckdateiinhalte drucken, indem sie Kommentare und leere Zeilen ausschließen
Defaultruntimedir $ apache_run_dir pidfile $ apache_pid_file Timeout 300 Keepalive auf MaxKeepAliveRequests 100 keepalivetimeout 5 Benutzer $ apache_run_user $ apache_run_group Hostnamelups off Egerlog $ apache_run_log Hostnamelups off Egerlog $ apache_run_log Hostnamelups off Egerlog $ apache_run_log hostnamelps off apache_run_log.log loglevel warnen inclyptional mods-fähig/*.LAD-Includeoptional-Mods-fähig/*.Conf umfasst Ports.Conf -Optionen folgen den folgenden Optionen. Ermöglichen SieOverride, dass keine alle verweigert werden müssen  

3. Finde alle .MP3 -Dateien unter Linux

Der Grep kann sehr nützlich sein, um zu filtern von Stdout. Nehmen wir beispielsweise an, Sie haben einen gesamten Ordner voller Musikdateien in verschiedenen Formaten.

Sie möchten alle finden *.MP3 Dateien des Künstlers Jay-Z, Sie möchten jedoch keine der Remix -Tracks. Verwendung einer Befehl finden mit ein paar Grep Rohre werden den Trick machen:

# finden . -Name "*.mp3 ”| grep -i Jayz | Grep -vi "Remix" 

In diesem Beispiel verwenden wir finden um alle Dateien mit a zu drucken *.MP3 Erweiterung, es auf grep -i um alle Dateien mit dem Namen herauszufiltern und zu drucken “Jay-ZUnd dann eine andere Pfeife zu grep -vi Welche Dateinamen filtern und drucken nicht mit der Zeichenfolge (in jedem Fall) “Remix”.

[Möglicherweise mögen Sie auch: 35 Praktische Beispiele für Linux -Befehlsbefehl]

4. Zeigen Sie die Anzahl der Zeilen vor oder nach der Suchzeichenfolge an

Weitere Optionen sind die -A Und -B Switches, in denen die übereinstimmende Zeile und die Anzahl der Zeilen angezeigt werden, die entweder vor oder nach der Suchzeichenfolge kommen.

Während die Mannseite eine detailliertere Erklärung gibt, finde ich es am einfachsten, sich an die Optionen zu erinnern -A = nach, Und -B = Vor:

# ifconfig | grep -a 4 inet # ifconfig | grep -b 2 auf 
Drucken Sie die Anzahl der Zeilen vor und nach der Zeichenfolge aus

5. Druckt Anzahl der Zeilen um die Übereinstimmung

Die Greps -C Die Option ist ähnlich, aber anstatt die Zeilen zu drucken, die entweder vor oder nach der Zeichenfolge vorliegen, druckt sie die Zeilen in beide Richtungen:

# ifconfig | grep -c 2 lo TX -Fehler 0 gesunken 0 Überrundung 0 Träger 0 Kollisionen 0 LO: Flags = 73 MTU 65536 INET 127.0.0.1 NetMask 255.0.0.0 INET6 :: 1 Präfixlen 128 scopeid 0x10 Loop Txqueuelen 1000 (lokale Loopback) RX -Pakete 15314 Bytes 1593769 (1.5 MB) RX -Fehler 0 gesunken 0 Überrungen 0 Frame 0 0 

6. Zählen Sie die Anzahl der Übereinstimmungen

Ähnlich wie bei Rohrleitungen a Grep Die integrierte Option von String to Word Count (WC) Grep kann für Sie dasselbe ausführen:

# ifconfig | grep -c inet6

7. Suchen Sie Dateien nach einer angegebenen Zeichenfolge unter Linux

Der -N Option für Grep ist sehr nützlich, wenn Dateien während des Kompilierfehlers debuggen. Es wird die Zeilennummer in der Datei der angegebenen Suchzeichenfolge angezeigt:

# Grep -n "Haupt" -Setup.py

8. Suchen Sie in allen Verzeichnissen eine Zeichenfolge rekursiv

Wenn Sie zusammen mit allen Unterverzeichnissen nach einer Zeichenfolge im aktuellen Verzeichnis suchen möchten, können Sie die angeben -R Option zur rekursiven Suche:

# Grep -r "Funktion" * 

9. Suche nach dem gesamten Muster

Übergeben -w Option zur Grep -Suche nach dem gesamten Muster, das sich in der Zeichenfolge befindet. Zum Beispiel verwenden Sie:

# ifconfig | Grep -W "Running"

Drucken Sie die Zeile mit dem Muster in Zitaten aus. Andererseits, wenn Sie versuchen:

# ifconfig | Grep -W "Lauf"
Finden Sie das gesamte Muster

Nichts wird zurückgegeben, da wir nicht nach einem Muster suchen, sondern nach einem ganzen Wort.

10. Suchen Sie eine Zeichenfolge in GZIP -Dateien

Einige Erwähnungen verdienen, sind Greps Derivate. Das erste ist Zgrep, was ähnlich wie Zcat, ist für den Einsatz auf gziped Dateien. Es dauert die gleichen Optionen wie Grep und wird auf die gleiche Weise verwendet:

# ZGREP -i Fehler/var/log/syslog.2.gz 
Suchen Sie die Zeichenfolge in GZIP -Dateien

11. Passen Sie reguläre Ausdrücke in Dateien an

Der EGREP -Befehl ist ein weiteres Ableitungen, für das steht “Erweiterter globaler regulärer Ausdruck”. Es erkennt zusätzliche Ausdrucksmeta-Charter wie bei + ? | Und ().

[Sie mögen vielleicht auch: Was ist Unterschied zwischen Grep, EGREP und FGREP unter Linux? ]

Egrep ist sehr nützlich für die Suche nach Quelldateien und anderen Codestücken, falls der Bedarf erfolgt,. Es kann von regulär angerufen werden Grep durch Angabe der -E Möglichkeit.

# Grep -e 

12. Suchen Sie eine feste Musterzeichenfolge

Der FGREP Sucht eine Datei oder Liste von Dateien nach einer festen Musterzeichenfolge. Es ist dasselbe wie grep -f. Eine häufige Art zu verwenden FGREP ist eine Datei mit Mustern an sie zu übergeben:

# FGREP -F -Datei_ful_of_Patterns.TXT File_to_search.txt

Dies ist nur ein Ausgangspunkt mit Grep, Aber wie Sie wahrscheinlich sehen können, ist es für eine Vielzahl von Zwecken von unschätzbarem Wert. Abgesehen von den einfachen Einzeilenbefehlen, die wir implementiert haben, Grep Kann verwendet werden, um mächtig zu schreiben Cron Jobs und robust Shell -Skripte, für den Anfang.

[Möglicherweise mögen Sie auch: 11 Advanced Linux 'Grep' -Befehle zu Charakterklassen und Klammerausdrücken]

Seien Sie kreativ, experimentieren Sie mit den Optionen auf der Mann Seite, und sich einfallen lassen Grep -Ausdrücke das dient Ihren eigenen Zwecken!