09.04.2014 Aufrufe

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

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!