Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:allgemein:grep

grep

grep findet Muster in Dateien. Es gibt noch egrep und fgrep, die sich so verhalten, als habe man grep mit der Option -E bzw. -F aufgerufen

Syntax

  • grep [Optionen] MUSTER [DATEI…]
  • grep [Optionen] [-e MUSTER | -f DATEI] [DATEI…]

Optionen

  • -e MUSTER, –regexp=MUSTER

Verwende MUSTER als das Suchmuster. Dadurch lässt sich verhindern, dass grep Suchmuster, die mit - beginnen, als Optionen interpretiert.
Es lässt sich so auch nach mehreren Mustern suchen, $ grep -e hallo -e ciao brief_1.txt

  • -f DATEI, –file=DATEI

Sucht nach Suchmustern Zeile für Zeile in DATEI.

  • -B NUM, –before-context=NUM

Zeige NUM Zeilen Kontext vor einer auf das Muster passenden Zeile an.

  • -C [NUM], -NUM, –context[=NUM]

Zeige je NUM Zeilen Kontext vor und nach einer auf das Muster passenden Zeile an. Zwei Zeilen Kontext sind voreingestellt.

  • -c, –count

Gibt lediglich die Zahl der Funde an

  • -i, –ignore-case

Unterscheidet auf der Suche nach Treffern nicht zwischen Groß- und Kleinschreibung.

  • -n, –line-number

Gibt vor jeder Zeile die Zeilennummer innerhalb der aktuellen Eingabedatei aus.

  • Es exitieren eine Vielzahl weiterer Optionen, vgl. hierzu $ man grep

Reguläre Ausrücke

Unter einem regulären Ausdruck versteht man ein Muster, das eine bestimmte Menge von Zeichenketten beschreibt. Reguläre Ausdrücke werden ganz ähnlich aufgebaut wie arithmetische Ausdrücke, indem man sie mit Hilfe verschiedener Operatoren aus kleineren Ausdrücken zusammensetzt.

  • Ein Punkt steht für jedes beliebige Zeichen innerhalb des Musters
  • ?: Das vorhergehende Zeichen ist optional und tritt höchstens einmal auf
  • *: Das vorhergehende Zeichen tritt kein mal oder beliebig oft auf
  • +: Das vorhergehende Zeichen tritt einmal oder mehrmals auf
  • Bei Zeichen in [ ] muss eines davon im Muster auftreten. Kann mit einer vorhergehenden ^ negiert werden: ^[ ]
  • Für weitere Regeln, vgl. hierzu $ man grep

Beispiele

  • Oft wird grep zusammen mit einer Pipe ( | ) verwendet:
$ finger @kernel.org | grep  'latest stable version'
  • Sucht man nach einer Datei, von der man nur noch weiß, dass ein bestimmtes Wort drin steht, kann man folgenden Befehl nutzen
grep -r SUCHWORT ./* >text.txt

Das >text.txt bewirkt dabei, dass die Ergebnisse in einer Datei gespeichert werden. Ist vielleicht besser, denn sonst flattern die nur so über den Bildschirm falls es einige sind.

linux/allgemein/grep.txt · Zuletzt geändert: 09.07.2013 21:33 (Externe Bearbeitung)