grep
Englisch ['grep] US ['grep]
[Berechnung] Zielzeilenbefehl abrufen
Linux grep-Befehl Syntax
Funktion: Der Befehl grep wird verwendet, um Zeichenfolgen zu finden, die die Bedingungen in der Datei erfüllen.
Syntax: grep [-abcEFGhHilLnqrsvVwxy][-A<Spaltennummer anzeigen>][-B<Spaltennummer anzeigen>][-C<Spaltennummer anzeigen>][-d<Aktion ausführen>] [-e< Vorlagenstil>][-f<Vorlagendatei>][--help][Vorlagenstil][Datei oder Verzeichnis...]
Linux grep-Befehl Beispiel
1. Suchen Sie im aktuellen Verzeichnis die Datei mit der Testzeichenfolge in der Datei mit dem Suffix „Wortdatei“ und drucken Sie die Zeile der Zeichenfolge aus. Zu diesem Zeitpunkt können Sie den folgenden Befehl verwenden:
grep test *file
Das Ergebnis ist wie folgt:
$ grep test test* #查找前缀有“test”的文件包含“test”字符串的文件 testfile1:This a Linux testfile! #列出testfile1 文件中包含test字符的行 testfile_2:This is a linux testfile! #列出testfile_2 文件中包含test字符的行 testfile_2:Linux test #列出testfile_2 文件中包含test字符的行
2. Suchen Sie rekursiv nach Dateien, die die Bedingungen erfüllen. Um beispielsweise Dateien zu finden, die die Zeichenfolge „update“ in allen Dateien im angegebenen Verzeichnis /etc/acpi und seinen Unterverzeichnissen (sofern Unterverzeichnisse vorhanden sind) enthalten, und den Inhalt der Zeile auszudrucken, in der sich die Zeichenfolge befindet, wird der folgende Befehl verwendet: :
grep -r update /etc/acpi
Die Ausgabeergebnisse lauten wie folgt:
$ grep -r update /etc/acpi #以递归的方式查找“etc/acpi” #下包含“update”的文件 /etc/acpi/ac.d/85-anacron.sh:# (Things like the slocate updatedb cause a lot of IO.) Rather than /etc/acpi/resume.d/85-anacron.sh:# (Things like the slocate updatedb cause a lot of IO.) Rather than /etc/acpi/events/thinkpad-cmos:action=/usr/sbin/thinkpad-keys--update
3. Die vorherigen Beispiele dienen dazu, die Zeilen zu finden und auszudrucken, die die Bedingungen erfüllen. Der Parameter „-v“ kann verwendet werden, um den Inhalt der Zeilen auszudrucken, die die Bedingungen nicht erfüllen.
Suchen Sie die Zeilen, die keinen Test in der Datei enthalten, deren Dateiname test enthält. Zu diesem Zeitpunkt lautet der verwendete Befehl:
grep -v test *test*
Das Ergebnis ist wie folgt:
$ grep-v test* #查找文件名中包含test 的文件中不包含test 的行 testfile1:helLinux! testfile1:Linis a free Unix-type operating system. testfile1:Lin testfile_1:HELLO LINUX! testfile_1:LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM. testfile_1:THIS IS A LINUX TESTFILE! testfile_2:HELLO LINUX! testfile_2:Linux is a free unix-type opterating system.