Grep: Unterschied zwischen den Versionen
Zeile 163: | Zeile 163: | ||
# [https://de.wikipedia.org/wiki/Regulärer_Ausdruck#Regul.C3.A4re_Ausdr.C3.BCcke_in_der_Praxis Erklärung regulärer Ausdrücke]https://de.wikipedia.org/wiki/Regulärer_Ausdruck | # [https://de.wikipedia.org/wiki/Regulärer_Ausdruck#Regul.C3.A4re_Ausdr.C3.BCcke_in_der_Praxis Erklärung regulärer Ausdrücke]https://de.wikipedia.org/wiki/Regulärer_Ausdruck | ||
; Grafische Werkzeuge | |||
# [https://searchmonkey.embeddediq.com/ Searchmonkey]https://searchmonkey.embeddediq.com/ | # [https://searchmonkey.embeddediq.com/ Searchmonkey]https://searchmonkey.embeddediq.com/ | ||
# [https://regexxer.sourceforge.net/ regexxer] https://regexxer.sourceforge.net/ | # [https://regexxer.sourceforge.net/ regexxer] https://regexxer.sourceforge.net/ |
Aktuelle Version vom 9. Oktober 2025, 00:15 Uhr
grep - Suchen in Dateien und Datenstömen
Beschreibung
Mit grep lassen sich Zeichenketten in Dateien finden, die auf die angegebenen regular expressions passen
- Wird keine Datei angegeben, so wird die Standardeingabe verwendet
grep steht für Global Regular Expression Print
- Regular Expressions für eine Suche nutzen
Mit regular expression lassen sich Dateien nach bestimmten Textstücken durchsuchen
- Die Suchmuster werden regular expressions genannt
- Sie sind vielfältig einsetzbar und werden nicht nur von grep verwendet
Global search for a regular expression and print out matched lines
- kurz 'g/re/p' ist das gebräuchlichste Kommando, um in Dateien nach bestimmten Mustern zu suchen
Einsatzgebiete
- Suche in Dateien
In Zusammenarbeit mit find kann ein ganzer Dateibaum gelesen werden
find /home/benutzername -exec grep -H "Passwort" {} \;
Dieses Kommando durchsucht alle Dateien des Quellverzeichnisses des Benutzers benutzername nach der Zeichenkette Passwort und zeigt die gefundenen Zeilen zusammen mit dem Dateinamen an, wobei die Anzeige des Dateinamens durch die Option -H ausgelöst wird
Manche grep-Versionen ermöglichen eine kürzere Formulierung mithilfe der Option -r
grep -r "Passwort" /home/benutzername
Ein zweites Einsatzgebiet ist die Verwendung als Zeilen-Filter innerhalb einer Kette von Befehlen, beispielsweise
tail -1000 /var/log/mail | grep "Mailadresse"
grep schreibt alle Zeilen der Eingabe, die das gesuchte Muster enthalten, auf die Standardausgabe
Installation
grep ist ein essenzielles Paket und sollte auf jedem Linux installiert sein
sudo apt install grep
Aufruf
grep [Optionen] Muster [Datei...]
grep [Optionen] [-e Muster | -f Datei] [Datei...]
Einsatz als Filter
Die Eingabe kann über die Standardeingabe oder die Angabe von Dateien erfolgen
cat /etc/services | grep MySQL
GNU Grep
- GNU Grep unterstützt
UNIX | GNU | Ausdruck | Befehl |
---|---|---|---|
-G | --basic-regexp | BRE | grep |
-E | --extended-regexp | ERE | egrep |
-F | --fixed-strings | fixed-string | fgrep |
-P | --perl-regexp | PCRE | |
-r | rgrep |
Optionen
- Wichtige Optionen
Unix | GNU | Parameter | Beschreibung |
---|---|---|---|
-A | --after-context= | NUM | gibt zusätzlich NUM Zeilen nach der passenden Zeile aus |
-a | --text | Verarbeite eine binäre Datei, als wäre sie Text. Dies entspricht der Option --binary-files=text | |
-B | --before-context= | NUM | gibt zusätzlich NUM Zeilen vor der passenden Zeile aus |
-b | --byte-offset | gibt den Byte-Offset innerhalb der Datei vor jeder gefundenen Zeile an | |
-c | --binary-files= | TYP | gibt an, wie mit Binärdateien verfahren soll |
-C | --count | unterdrückt die normale Ausgabe und gibt stattdessen für jede Eingabedatei an, wieviele Zeilen auf die regular expression passen | |
--colour --color |
[=Wann] | Markiert Treffer farbig. Wann kann dabei "never", "always" oder "auto" sein | |
-E | --extended-regexp | Verwendet die extended Variante beim Interpretieren der übergebenen regular expression | |
-e | --regexp= | Muster | verwende Muster als regular expression. Nützlich um Ausdrücke zu schützen, die mit einem - beginnen |
-F | --fixed-strings | interpretiert das übergebene Muster als eine Liste von festen Zeichenketten, die durch Zeilenumbrüche voneinander getrennt sind | |
-f | --file= | Datei | beziehe die Muster aus Datei, eines je Zeile. Eine leere Datei enthält keine Muster und passt somit auf keinen String |
-H | --with-filename | gibt den Dateinamen vor jedem Treffer aus | |
-h | --no-filename | unterdrückt die Ausgabe des Dateinamens, wenn mehrere Dateien durchsucht werden | |
-I | --binary-files= | without-match | schließt Binärdateien aus |
-i | --ignore-case | unterscheide nicht zwischen Groß- und Kleinschreibung | |
-L | --files-without-match | unterdrückt die normale Ausgabe und gibt stattdessen die Dateinamen von allen Dateien, die keine Treffer enthalten aus. Die Bearbeitung stoppt, sobald ein Treffer auftritt | |
-l | --files-with-match | unterdrückt die normale Ausgabe und gibt stattdessen die Dateinamen von allen Dateien, die Treffer enthalten aus. Die Bearbeitung stoppt, sobald ein Treffer auftritt | |
-n | --line-number | gibt die Zeilennummer vor jedem Treffer aus | |
-o | --only-matching | gibt nur die passende Zeichenkette aus | |
-P | --perl-regexp | verwendet Perl regular expressions | |
-q | --quiet --silent |
schreibt nichts auf die Standardausgabe und stoppt beim ersten Treffer | |
--recursive | liest alle Dateien unter jedem Verzeichnis rekursiv | ||
-v | --invert-match | Invertiert die Suche und liefert alle Zeilen die nicht auf das gesuchte Muster passen | |
-w | --word-regexp | wählt nur solche Zeilen aus, deren Treffer aus vollständigen Wörtern bestehen |
Binärdateien
Wie soll grep mit binären Dateien verfahren?
- Default für Typ ist binary, in diesem Fall gibt grep nur eine kurze einzeilige Mitteilung aus, ob die Datei das Muster enthält oder nicht.
- without-match nimmt an, dass eine binäre Datei keine passenden Zeichenketten enthält.
- Bei text verarbeitet grep die Datei als wäre sie eine Textdatei.
- Vorsicht
Die Ausgabe von binären Daten kann zu unerwünschten Resultaten führen, wenn die Ausgabe auf einem Terminal erfolgt, und dieses einige der Zeichenketten als Befehle interpretiert!
Exit-Status
Anhang
Siehe auch
Dokumentation
- Man-Page
- grep
- regex(7)
- Info-Pages
- info page grep
Links
Projekt
Weblinks
- https://wiki.ubuntuusers.de/grep/
- pgrep - gezielt nach der PID suchen / filternhttps://wiki.ubuntuusers.de/pgrep
- pdfgrep - PDF-Dateien durchsuchenhttps://wiki.ubuntuusers.de/pdfgrep
- grep in der Wikipediahttps://de.wikipedia.org/wiki/grep
- GNU grephttps://www.gnu.org/software/grep/
- Erklärung regulärer Ausdrückehttps://de.wikipedia.org/wiki/Regulärer_Ausdruck
- Grafische Werkzeuge
- Searchmonkeyhttps://searchmonkey.embeddediq.com/
- regexxer https://regexxer.sourceforge.net/
- jGrep https://sourceforge.net/projects/jgrep
- grepuihttps://sethoscope.net/grepui/