====== 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.