Heim > Artikel > Betrieb und Instandhaltung > Umfassende und detaillierte Erklärung der Verwendung des grep-Befehls unter Linux
Wenn Sie das Linux-System erlernen möchten, müssen Sie den Befehl grep beherrschen. Der Befehl grep wird verwendet, um passende Zeilen in Dateien oder der Standardausgabe zu finden. Seine Stärke besteht darin, dass er reguläre Ausdrücke unterstützt. In der täglichen Arbeit ist grep definitiv einer der am häufigsten verwendeten Befehle.
Hinweis: In diesem Artikel wird nur die Verwendung von grep vorgestellt und keine regulären Ausdrücke.
Werfen wir einen Blick auf einige der gebräuchlichen Optionen und ihre Bedeutung:
Optionen
-i Groß- und Kleinschreibung bei der Suche ignorieren
-n Alle übereinstimmenden Zeilen auflisten und Zeilennummern anzeigen
- v Auswahl umkehren
-c Nur die Anzahl der übereinstimmenden Zeilen ausgeben
-l Nur übereinstimmende Dateinamen auflisten, keine bestimmten übereinstimmenden Zeilen auflisten
-h Wird nicht angezeigt, wenn mehrere Dateien abgefragt werden. Dateiname
-r Rekursive Suche
-q Ausgabe jeglicher Ergebnisse verbieten, der Exit-Status zeigt an, ob die Suche erfolgreich ist
--color=auto Zeigt die gefundenen Schlüsselwörter in Farbe an
-E, -- „extended-regexp PATTERN“ ist ein erweiterbarer regulärer Ausdruck (abgekürzt als ERE)
-B, --before-context=NUM Gibt NUM Zeilen aus, die mit Text beginnen
-A , --after-context=NUM Gibt NUM aus Zeilen, die mit Text enden
Lassen Sie uns einige Verwendungen von grep einführen:
Wir wissen, dass php.ini eine Zeitzonenkonfiguration hat, die Einzelheiten sind nicht klar, wir kennen nur die Zeitzone. Jetzt wollen wir die Konfigurationsinformationen finden, wir kann grep zum Suchen verwenden
# 加上-i选项,忽略大小写 # grep -i timezone /usr/local/php/etc/php.ini ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = PRC
grep unterstützt die Suche in mehreren Dateien
# 这里我们加上-n选项,输出文件的行号 # grep -in stdio itoa.c quicksort.c itoa.c:2:#include <stdio.h> quicksort.c:1:#include <stdio.h>
Die Verwendung der umgekehrten Auswahl -v: Wenn ich ein Programm ausführe, möchte ich sehen, ob dieses Programm noch einen Prozess im Prozess hat, den Sie verwenden können Die folgende Methode
# ps aux | grep curl.php root 14374 98.3 1.2 277844 12396 pts/0 R+ 07:54 1:07 php curl.php root 14404 0.0 0.0 112664 984 pts/2 R+ 07:55 0:00 grep --color=auto curl.php
Hier liegt ein Problem vor. Wir müssen -v verwenden, um den Prozess von grep selbst herauszufiltern.
# ps aux | grep curl.php | grep -v grep root 14374 98.5 1.2 277844 12396 pts/0 R+ 07:54 2:36 php curl.php
Wir möchten die Anzahl der Zeilen zählen, die im letzten Befehl root enthalten. Daher benötigen wir hier die - c-Option wird verwendet.
# last | grep -c root 353
Es besteht häufig die Notwendigkeit, bestimmte Texte in Dateien stapelweise zu ersetzen. Woher wissen Sie also, in welchen Dateien sich diese Texte befinden? Grep kann dies mit der Option -l tun. Schauen wir uns ein weiteres Beispiel an. In diesem Beispiel möchten wir Kommentarzeilen und Leerzeilen in der Datei php.ini herausfiltern Auch eine häufig verwendete Option -r kann verwendet werden, um alle Dateien im aktuellen Verzeichnis sowie Dateien in Unterverzeichnissen rekursiv zu durchsuchen. Als nächstes möchten wir überprüfen, welche Fußzeilendateien sich im Website-Verzeichnis befinden. Wir können den folgenden Befehl verwenden, um sie zu finden
# find . -type f -exec grep -l define {} \; ./find.c ./itoa2.c ./wc.c ./test.c ./wordcnt.c ./longestline.c ./cal.c ./sortline2.c ./sortline.c ./found.c ./atof.c
Das obige ist der detaillierte Inhalt vonUmfassende und detaillierte Erklärung der Verwendung des grep-Befehls unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!