Zum Inhalt springen

grep

Aus Foxwiki
Die 5 zuletzt angesehenen Seiten:  date » help » Eval » hash » grep

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

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

  1. https://wiki.ubuntuusers.de/grep/