Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...
Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...
Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
7.3 Dateien nach Textteilen durchsuchen – grep 107<br />
grep jedoch mit dem Rückstrich versehen. (Bei egrep können Sie darauf verzichten.)<br />
»Bescheidene« Operatoren gibt es leider nicht.<br />
A<br />
Damit die Sonderzeichen nicht bereits von der Shell interpretiert, sondern<br />
korrekt an grep übergeben werden, sollten Sie den regulären Ausdruck in<br />
Anführungszeichen setzen, jedenfalls wenn er komplizierter ist als eine einfache<br />
Zeichenkette und insbesondere wenn er einem Shellsuchmuster ähnelt.<br />
Außer dem regulären Ausdruck und allfälligen Dateinamen können wie gewohnt<br />
auch verschiedene Optionen auf der Kommandozeile angegeben werden (s. Tabelle<br />
7.2).<br />
Mit der Option -f (engl. file, »Datei«) können reguläre Ausdrücke aus einer Regulärer Ausdruck in Datei<br />
Datei gelesen werden. Wenn diese Musterdatei mehrere Zeilen enthält, wird jeweils<br />
der Inhalt einer kompletten Zeile als einzelner Ausdruck angesehen. <strong>Die</strong>s<br />
bringt bei häufig benutzten Suchoperationen eine deutliche Arbeitserleichterung<br />
mit sich.<br />
Wie erwähnt erlaubt fgrep keine regulären Ausdrücke, sondern nur konstante<br />
Zeichenketten als Suchobjekte. egrep hingegen macht die meisten Erweiterungen<br />
für reguläre Ausdrücke bequemer verfügbar (Tabelle 7.1).<br />
Zum Abschluss noch ein paar Beispiele zur Anwendung von grep. <strong>Die</strong> Datei Beispiele<br />
frosch.txt enthält das Märchen vom Froschkönig (siehe Kapitel B). Alle Zeilen,<br />
die die Zeichenkette Frosch enthalten, finden Sie leicht wie folgt:<br />
$ grep Frosch frosch.txt<br />
Der Froschkönig oder der eiserne Heinrich<br />
Sie sah sich um, woher die Stimme käme, da erblickte sie einen Frosch,<br />
»Sei still und weine nicht«, antwortete der Frosch, »ich kann wohl Rat<br />
»Was du haben willst, lieber Frosch«, sagte sie, »meine Kleider, meine<br />
✁✁✁✁✁<br />
Um die Zeilen zu finden, die genau das Wort »Frosch« enthalten (und nicht irgendwelche<br />
Zusammensetzungen wie »Froschkönig«), brauchen Sie die Wortklammer-<br />
Erweiterung:<br />
$ grep '\' frosch.txt<br />
Sie sah sich um, woher die Stimme käme, da erblickte sie einen Frosch,<br />
»Sei still und weine nicht«, antwortete der Frosch, »ich kann wohl Rat<br />
»Was du haben willst, lieber Frosch«, sagte sie, »meine Kleider, meine<br />
Der Frosch antwortete: »Deine Kleider, deine Perlen und Edelsteine und<br />
✁✁✁✁✁<br />
Es ist auch einfach, alle Zeilen zu finden, die mit »Frosch« anfangen:<br />
$ grep ^Frosch frosch.txt<br />
Frosch mag schwätzen, was er will, der sitzt doch im Wasser bei<br />
Frosch.«<br />
Frosch verwandelt worden war, daß er drei eiserne Bänder um sein Herz<br />
Ein anderes Beispiel: In /usr/share/dict/words steht eine Liste englischer Wörter<br />
(gerne als »Wörterbuch« bezeichnet) 4 . Wir interessieren uns für alle Wörter mit<br />
drei oder mehr »a«:<br />
$ grep -n 'a.*a.*a' /usr/share/dict/words<br />
8:aardvark<br />
21:abaca<br />
22:abacate<br />
4 Je nach Distribution kann der Inhalt <strong>des</strong> Wörterbuchs mehr oder weniger umfangreich ausfallen.<br />
Copyright © 2012 <strong>Linup</strong> <strong>Front</strong> GmbH