grep
Erscheinungsbild
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