Hier sind 31 nützliche grep-Befehlsbeispiele unter Linux/Unix zusammen mit ihren Erklärungen und Verwendungsszenarien:
1. Suchen Sie nach einem bestimmten Text in einer Datei:
„
grep „Suchtext“ Dateiname
„
Erklärung :Druckt die Zeilen, die dem „Suchtext“ aus dem angegebenen Dateinamen entsprechen.
Beispiel :
„
grep „error“ /var/log/system.log
„
Dieser Befehl sucht nach allen Zeilen in der Systemprotokolldatei, die „error“ enthalten.
2. Suchen Sie rekursiv in einem Verzeichnis nach einem bestimmten Text:
„
grep -r „Suchtext“ Verzeichnisname
„
Erklärung :Führt eine rekursive Suche nach „search-text“ im angegebenen Verzeichnis und allen seinen Unterverzeichnissen durch.
Beispiel :
„
grep -r "Konfiguration" /etc/
„
Dieser Befehl sucht rekursiv im Verzeichnis „/etc/“ nach allen Dateien, die das Wort „configuration“ enthalten.
3. Suchen Sie nach Zeilen, die einem regulären Ausdruck entsprechen:
„
grep -E „regex-pattern“ Dateiname
„
Erklärung :Verwendet reguläre Ausdrücke, um nach Zeilen zu suchen, die dem angegebenen Muster entsprechen.
Beispiel :
„
grep -E "^[0-9]{4}-[0-1]{1}[0-9]{1}-[0-3]{1}[0-9]{1} .*" access.log
„
Dieser Befehl verwendet einen regulären Ausdruck, um alle Zeilen in der Datei „access.log“ zu finden, die mit einem Datumsformat beginnen (JJJJ-MM-TT gefolgt von einer Uhrzeit).
4. Zählen Sie die Anzahl der übereinstimmenden Zeilen:
„
grep -c „Suchtext“ Dateiname
„
Erklärung :Gibt die Anzahl der Zeilen an, die mit dem „Suchtext“ im angegebenen Dateinamen übereinstimmen.
Beispiel :
„
grep -c „fehlgeschlagen“ /var/log/auth.log
„
Dieser Befehl zählt, wie oft das Wort „failed“ in der Datei „/var/log/auth.log“ vorkommt.
5. Drucken Sie die passenden Zeilen mit Zeilennummern aus:
„
grep -n „Suchtext“ Dateiname
„
Erklärung :Zeigt die übereinstimmenden Zeilen zusammen mit ihren Zeilennummern im angegebenen Dateinamen an.
Beispiel :
„
grep -n „Warnung“ /var/log/messages
„
Dieser Befehl zeigt die Zeilennummern aller Zeilen an, die das Wort „Warnung“ in der Datei „/var/log/messages“ enthalten.
6. Groß- und Kleinschreibung bei der Suche ignorieren:
„
grep -i Dateiname „Suchtext“.
„
Erklärung :Führt eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung nach „search-text“ im angegebenen Dateinamen durch.
Beispiel :
„
grep -i „Fehler“ /var/log/system.log
„
Dieser Befehl sucht nach Vorkommen des Worts „Error“ in Groß- und Kleinbuchstaben in der Systemprotokolldatei.
7. Zeilen ausschließen, die einem bestimmten Text entsprechen:
„
grep -v „exclude-text“ Dateiname
„
Erklärung :Druckt nur die Zeilen, die nicht mit dem „exclude-text“ im angegebenen Dateinamen übereinstimmen.
Beispiel :
„
grep -v "INFO" /var/log/messages | grep „FEHLER“
„
Dieser Befehl schließt zunächst Zeilen mit „INFO“ aus der Datei „/var/log/messages“ aus und sucht dann in der verbleibenden Ausgabe nach Zeilen mit „ERROR“.
8. Suchen Sie nach einem Muster und geben Sie den vorhergehenden Kontext aus:
„
grep -B „num“ „Suchtext“ Dateiname
„
Erklärung :Gibt „num“ Zeilen vor dem passenden „search-text“ im angegebenen Dateinamen aus.
Beispiel :
„
grep -B 3 „error_message“ /var/log/syslog
„
Dieser Befehl zeigt die 3 Zeilen vor jeder Zeile an, die „error_message“ in der Systemprotokolldatei enthält.
9. Suchen Sie nach einem Muster und geben Sie den folgenden Kontext aus:
„
grep -A „num“ „search-text“ Dateiname
„
Erklärung :Gibt „num“ Zeilen nach dem passenden „search-text“ im angegebenen Dateinamen aus.
Beispiel :
„
grep -A 5 „successful_login“ /var/log/auth.log
„
Dieser Befehl gibt 5 Zeilen nach jeder Zeile aus, die „successful_login“ in der Authentifizierungsprotokolldatei enthält.
10. Drucken Sie die passenden Zeilen mit Dateinamen aus:
„
grep -H "Suchtext" *
„
Erklärung :Zeigt die übereinstimmenden Zeilen zusammen mit den Namen der Dateien an, in denen sie enthalten sind, wenn mehrere Dateien durchsucht werden.
Beispiel :
„
grep -H "Warnung" /var/log/*.log
„
Dieser Befehl sucht in allen Protokolldateien im Verzeichnis „/var/log/“ nach dem Wort „Warnung“ und gibt die entsprechenden Zeilen zusammen mit den Dateinamen aus.
11. Drucken Sie nur den passenden Teil der Zeilen aus:
„
grep -o „matching-pattern“ Dateiname
„
Erklärung :Druckt nur den Teil der Zeilen, der dem angegebenen „matching-pattern“ im angegebenen Dateinamen entspricht.
Beispiel :
„
grep -o "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9 ]\{1,3\}" access.log
„
Dieser Befehl extrahiert und druckt nur die IP-Adressen aus den Zeilen in der Datei „access.log“.
12. Verwenden Sie den ODER-Operator, um nach mehreren Mustern zu suchen:
„
grep -E "pattern1|pattern2" Dateiname
„
Erklärung :Sucht nach Zeilen, die entweder mit „pattern1“ oder „pattern2“ im angegebenen Dateinamen übereinstimmen.
Beispiel :
„
grep -E „fehlgeschlagen|erfolgreich“ /var/log/auth.log
„
Dieser Befehl sucht in der Authentifizierungsprotokolldatei nach Zeilen, die entweder das Wort „failed“ oder das Wort „successful“ enthalten.
13. Beenden Sie nach dem ersten Spiel:
„
grep -m 1 Dateiname „Suchtext“.
„
Erklärung :Stoppt die Suche und gibt nur die erste übereinstimmende Zeile im angegebenen Dateinamen aus.
Beispiel :
„
grep -m 1 „kritischer Fehler“ /var/log/messages
„
Dieser Befehl gibt nur die erste Zeile aus, die den Text „kritischer Fehler“ in der Datei „/var/log/messages“ enthält.
14. Gibt die Zeilennummer der ersten übereinstimmenden Zeile aus:
„
grep -b „Suchtext“ Dateiname
„
Erklärung :Zeigt den Byte-Offset der ersten übereinstimmenden Zeile innerhalb des angegebenen Dateinamens an.
Beispiel :
„
grep -b „Startserver“ /var/log/syslog
„
Dieser Befehl gibt die Byte-Position in der Datei aus, an der sich die Zeile „Startserver“ befindet.
15. In komprimierten Dateien (.gz) suchen:
„
zgrep "Suchtext" *.gz
„
Erklärung :Ermöglicht die Suche in komprimierten „.gz“-Dateien, ohne dass diese zuerst dekomprimiert werden müssen.
Beispiel :
„
zgrep „error_message“ /var/log/*.gz
„
Dieser Befehl sucht in allen „.gz“-Dateien im Verzeichnis „/var/log/“ nach „error_message“, ohne sie zu dekomprimieren.
16. Geben Sie den passenden Dateinamen aus, wenn es eine Übereinstimmung gibt:
„
grep -l "Suchtext" *
„
Erklärung :Listet die Dateinamen auf, die den „Suchtext“ enthalten, ohne die tatsächlich übereinstimmenden Zeilen auszugeben.
Beispiel :
„
grep -l „kritischer Fehler“ /var/log/*.log
„
Dieser Befehl listet alle Protokolldateien im Verzeichnis „/var/log/“ auf, die den Text „kritischer Fehler“ enthalten.
17. Kehren Sie das Matching-Verhalten um:
„
grep -v „Suchtext“ Dateiname
„
Erklärung :Druckt nur die Zeilen, die nicht mit dem „Suchtext“ im angegebenen Dateinamen übereinstimmen.
Beispiel :
„
grep -v „200 OK“ access.log
„
Dieser Befehl druckt alle Zeilen außer denen, die „200 OK“ in der Datei „access.log“ enthalten.
18. Drucken Sie nur die Zeilen, die eindeutig einen bestimmten Text enthalten:
„
grep --only-matching „search-text“ Dateiname
„
Erklärung :Zeigt nur die Zeilen an, die ausschließlich mit dem „Suchtext“ übereinstimmen, und schließt alle Zeilen aus, die auch mit anderen Mustern im Text übereinstimmen.
Beispiel :
„
grep --only-matching „erfolgreich verbunden“ /var/log/messages
„
Dieser Befehl gibt nur die Zeilen aus, die genau „erfolgreich verbunden“ enthalten, und keine anderen Varianten wie „erfolgreich mit der Datenbank verbunden“.
19. Färben Sie den passenden Text ein:
„
grep --color „Suchtext“ Dateiname
„
Erklärung :Hebt den passenden Text in verschiedenen Farben hervor, um die Lesbarkeit zu verbessern.
Beispiel :
„
grep --color „error“ /var/log/syslog
„
Dieser Befehl gibt die Zeilen mit „Fehler“ in der Systemprotokolldatei aus, wobei der entsprechende Text farblich hervorgehoben wird.
20. Statistiken für übereinstimmende Zeilen anzeigen:
„
grep -c "Suchtext" Dateiname | wc -l
„
Erklärung :Stellt die Anzahl der übereinstimmenden Zeilen mithilfe von grep bereit und verwendet dann den Befehl „wc -l“, um die Anzahl anzuzeigen.
Beispiel :
„
grep -c "warning" /var/log/messages | wc -l
„
Dieser Befehl zählt zunächst mit grep die Zeilen mit „Warnung“ und zeigt dann die Anzahl an.
21. Binärdateien bei der Suche herausfiltern:
„
grep