Grep: Unterschied zwischen den Versionen
Erscheinungsbild
| Zeile 117: | Zeile 117: | ||
== Anhang == | == Anhang == | ||
=== Siehe auch === | === Siehe auch === | ||
{{Special:PrefixIndex/{{BASEPAGENAME}}}} | {{Special:PrefixIndex/{{BASEPAGENAME}}/}} | ||
=== Dokumentation === | === Dokumentation === | ||
Version vom 20. Februar 2025, 14:14 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
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 |
Parameter
Umgebungsvariablen
Exit-Status
Konfiguration
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!
Anhang
Siehe auch
Dokumentation
- Man-Page
- Info-Pages
Links
Projekt
Weblinks