12 Praktische Beispiele für Linux Grep -Befehl
- 3181
- 289
- Hr. Moritz Bozsik
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 PythonFinden 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.
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 aufDrucken 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.gzSuchen 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!
- « So speichern Sie eine Datei im VI / VIM -Editor unter Linux
- So installieren Sie die neueste Python -Version in Ubuntu »