Detaillierte Erklärung zur Verwendung des Grep-Befehls in Linux

Detaillierte Erklärung zur Verwendung des Grep-Befehls in Linux

1. Offizielle Einführung

grep ist ein häufig verwendeter Befehl in Linux. Es ist ein Unix-Tool, mit dem sich wiederholende Suchaufgaben für Dateien und Text ausgeführt werden. Mit dem Befehl grep können Sie bestimmte Suchbedingungen angeben, um Dateien und deren Inhalte zu durchsuchen und nützliche Informationen zu erhalten.

Verwendung: grep [OPTION] ... MUSTER [DATEI] ...
Suchen Sie in jeder DATEI oder Standardeingabe nach MUSTER.
PATTERN ist standardmäßig ein grundlegender regulärer Ausdruck (BRE).
Beispiel: grep -i 'hello world' menu.h main.c

Regexp-Auswahl und -Interpretation:
 -E, --extended-regexp PATTERN ist ein erweiterter regulärer Ausdruck (ERE)
 -F, --fixed-strings PATTERN ist eine Reihe von durch Zeilenumbrüche getrennten festen Zeichenfolgen
 -G, --basic-regexp PATTERN ist ein einfacher regulärer Ausdruck (BRE)
 -P, --perl-regexp PATTERN ist ein regulärer Perl-Ausdruck
 -e, --regexp=MUSTER MUSTER zum Abgleichen verwenden
 -f, --file=DATEI MUSTER aus DATEI abrufen
 -i, --ignore-case Groß-/Kleinschreibung ignorieren
 -w, --word-regexp erzwingt, dass MUSTER nur mit ganzen Wörtern übereinstimmt
 -x, --line-regexp erzwingt, dass MUSTER nur mit ganzen Zeilen übereinstimmt
 -z, --null-data eine Datenzeile endet mit 0 Byte, nicht mit einem Zeilenumbruch

Verschiedenes:
 -s, --no-messages unterdrückt Fehlermeldungen
 -v, --invert-match wählt nicht übereinstimmende Zeilen aus
 -V, --version zeigt Versionsinformationen an und beendet das Programm
  --help zeigt diesen Hilfetext an und beendet das Programm

Ausgabesteuerung:
 -m, --max-count=NUM Stopp nach NUM Übereinstimmungen
 -b, --byte-offset gibt den Byte-Offset mit den Ausgabezeilen aus
 -n, --line-number Zeilennummer mit Ausgabezeilen drucken
  --line-buffered Ausgabe in jeder Zeile leeren
 -H, --with-filename gibt den Dateinamen für jede Übereinstimmung aus
 -h, --no-filename unterdrückt das Dateinamenpräfix bei der Ausgabe
  --label=LABEL verwendet LABEL als Standardpräfix für Eingabedateinamen
 -o, --only-matching zeigt nur den Teil einer Zeile an, der mit PATTERN übereinstimmt
 -q, --quiet, --silent unterdrückt die gesamte normale Ausgabe
  --binary-files=TYPE nimmt an, dass Binärdateien vom Typ sind;
       TYP ist „binär“, „Text“ oder „ohne Übereinstimmung“.
 -a, --text, entspricht --binary-files=text
 -I entspricht --binary-files=without-match
 -d, --directories=ACTION wie mit Verzeichnissen umgegangen wird;
       AKTION ist „Lesen“, „Rekursiv“ oder „Überspringen“
 -D, --devices=ACTION wie mit Geräten, FIFOs und Sockets umgegangen wird;
       AKTION ist „Lesen“ oder „Überspringen“
 -r, --recursive wie --directories=recurse
 -R, --dereference-recursive
       ebenso, aber folge allen Symlinks
  --include=DATEIMUSTER
       Suche nur nach Dateien, die mit FILE_PATTERN übereinstimmen
  --exclude=DATEIMUSTER
       Überspringen Sie Dateien und Verzeichnisse, die mit FILE_PATTERN übereinstimmen
  --exclude-from=DATEI - Dateien überspringen, die einem beliebigen Dateimuster aus DATEI entsprechen
  --exclude-dir=PATTERN: Verzeichnisse, die mit PATTERN übereinstimmen, werden übersprungen.
 -L, --files-without-match druckt nur Namen von Dateien, die keine Übereinstimmung enthalten
 -l, --files-with-matches druckt nur Namen von DATEIEN, die Übereinstimmungen enthalten
 -c, --count gibt nur die Anzahl der übereinstimmenden Zeilen pro DATEI aus
 -T, --initial-tab Tabs ausrichten (falls nötig)
 -Z, --null druckt 0 Bytes nach dem Dateinamen

Kontextsteuerung:
 -B, --before-context=NUM druckt NUM Zeilen des führenden Kontexts
 -A, --after-context=NUM druckt NUM Zeilen des nachfolgenden Kontexts
 -C, --context=NUM druckt NUM Zeilen des Ausgabekontexts
 -NUM dasselbe wie --context=NUM
  --group-separator=SEP SEP als Gruppentrennzeichen verwenden
  --no-group-separator leere Zeichenfolge als Gruppentrennzeichen verwenden
  --color[=WANN],
  --colour[=WHEN] verwendet Markierungen, um die passenden Zeichenfolgen hervorzuheben;
       WANN ist „immer“, „nie“ oder „automatisch“
 -U, --binary entfernt keine CR-Zeichen bei EOL (MSDOS/Windows)
 -u, --unix-byte-offsets Offsets melden, als ob keine CRs vorhanden wären
       (MSDOS/Windows)

„egrep“ bedeutet „grep -E“. „fgrep“ bedeutet „grep -F“.
Der direkte Aufruf als „egrep“ oder „fgrep“ ist veraltet.
Wenn DATEI - ist, wird die Standardeingabe gelesen. Ohne DATEI wird . gelesen, wenn eine Kommandozeile
-r ist angegeben, andernfalls -. Wenn weniger als zwei DATEIEN angegeben sind, wird -h angenommen.
Der Beendigungsstatus ist 0, wenn eine beliebige Zeile ausgewählt ist, andernfalls 1.
Wenn ein Fehler auftritt und -q nicht angegeben ist, lautet der Beendigungsstatus 2.

Fehler melden an: [email protected]
GNU Grep-Homepage: <http://www.gnu.org/software/grep/>
Allgemeine Hilfe zur Verwendung von GNU-Software: http://www.gnu.org/gethelp/

Normalerweise prüfe ich Benutzerdaten nur zum einfachen Korrekturlesen von Daten. Vor kurzem erhielt ich plötzlich eine Anfrage zur Analyse der Hintergrundprotokolle und stellte fest, dass grep ziemlich nützlich ist.

Beispielsweise ist unser Hintergrundprotokoll ziemlich groß. Wenn wir es direkt vom Server abrufen, dauert es lange und belegt Bandbreite. Die Lösung besteht also darin, es direkt mit dem Schlüsselwort grep in eine neue Datei umzuleiten, von 14 G direkt auf 12 M, und dann die Daten zu bereinigen und zu analysieren.

2. Praktische Einführung

2.1 Verwenden Sie den Befehl grep, um mehrere Texte in mehreren Dateien abzufragen

Hinweis: Verwenden Sie den Befehl egrep, um erweiterte reguläre Ausdrücke zu verwenden

1. Mehrere Dateien

  • grep 'Muster' Datei1 Datei2

2. Mehrere Texte, die Beziehung ist ODER

  • egrep 'Muster1|Muster2' *.py
  • grep -e Muster1 -e Muster2 *.py
  • grep -E 'Muster1|Muster2' *.doc

Folgendes extrahiert beispielsweise die Schlüsselwörter WortA oder WortB in der Datei:

grep 'WortA\|WortB' *.py
grep -E 'WortA|WortB' *.doc
grep -e WortA -e WortB *.py
egrep "WortA|WortB" *.c

3. Mehrtextbeziehung ist UND

Ich sehe hier keine direkt verwendbare [Option], daher kann ich nur ein Pipe-Symbol | hinzufügen.

Zum Beispiel:

grep -e Muster1 *.py |grep -e Muster2

2.2 Genaue Übereinstimmung mit dem Schlüsselwort -w

grep -w 'Warnung\|Fehler\|kritisch' /home/logs

2.3 Verwenden Sie den Parameter -i, um die Groß-/Kleinschreibung zu ignorieren, und --color, um passende Ergebnisse hervorzuheben

egrep -wi --color 'Warnung|Fehler|kritisch' /home/logs

2.4 Rekursive Suche

egrep -Rwi --color 'Warnung|Fehler' /home/logs/

Dies ist das Ende dieses Artikels über die detaillierte Verwendung des häufig verwendeten Linux-Befehls - grep-Befehl. Weitere relevante Inhalte zur detaillierten Erklärung des grep-Befehls in Linux finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Eine vollständige Liste häufig verwendeter Linux-Befehle (super umfassend)
  • Eine vollständige Liste häufig verwendeter Linux-Befehle (empfohlene Sammlung)
  • Lösen Sie das Problem, dass der häufig verwendete Linux-Befehl "ll" ungültig ist oder der Befehl nicht gefunden wird
  • Allgemeine Linux-Befehle chmod zum Ändern der Dateiberechtigungen 777 und 754
  • Einführung in Linux und die am häufigsten verwendeten Befehle (leicht zu erlernen, kann aber mehr als 95 % der Probleme lösen)
  • Häufig verwendete Linux-Befehle Leistungsbefehle

<<:  Was sind die Unterschiede zwischen SQL und MySQL

>>:  Vue-Electron-Problemlösung bei Verwendung des seriellen Ports

Artikel empfehlen

MySQL-Sharding-Details

1. Einführung in das Geschäftsszenario Angenommen...

Methode zur Implementierung von Website-Hintergrundmusik

Für einzelne Webmaster war es schon immer das Ziel...

Einführung in den Löschvorgang von B-Tree

Im vorherigen Artikel https://www.jb51.net/articl...

Wie stelle ich Tomcat als automatisch gestarteten Dienst ein? Der schnellste Weg

Stellen Sie Tomcat so ein, dass der Dienst automa...

Detaillierte Erklärung von :key in VUE v-for

Wenn der Schlüssel nicht zum v-for-Tag hinzugefüg...

Detaillierte Erklärung der Dreieckszeichnung und clevere Anwendungsbeispiele in CSS

führen Einige gängige Dreiecke auf Webseiten könn...

Detaillierte Erklärung der Schritte zum Erstellen eines Webservers mit node.js

Vorwort Es ist sehr einfach, einen Server in node...

Öffnen Sie den Windows-Server-Port (nehmen Sie als Beispiel Port 8080)

Was ist ein Port? Bei den Ports, auf die wir uns ...

Detaillierte Erklärung zum Ersetzen in ein Beispiel in MySQL

Detaillierte Erklärung zum Ersetzen in ein Beispi...