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.

106 7 Reguläre Ausdrücke<br />

Tabelle 7.1: Unterstützung von regulären Ausdrücken<br />

Erweiterung GNU grep GNU egrep trad. egrep vim emacs Perl Tcl<br />

Wortklammern • • • •1 •1 •4 •4<br />

Gruppierung •1 • • •1 •1 • •<br />

Alternative •1 • • •2 •1 • •<br />

Optionales •1 • • •3 • • •<br />

mind. einmal •1 • • •1 • • •<br />

Anzahl •1 • ∘ •1 •1 • •<br />

Rückbezug ∘ • • ∘ • • •<br />

Bescheiden ∘ ∘ ∘ •4 • • •<br />

•: wird unterstützt; ∘: wird nicht unterstützt<br />

Anmerkungen: 1. Wird durch einen vorgesetzten Rückstrich (»\«) angesprochen, also z. B. »ab\+« statt<br />

»ab+«. 2. Braucht keine Klammern; Alternativen beziehen sich immer auf den kompletten Ausdruck.<br />

3. Benutzt »\=« statt »?«. 4. Ganz andere Syntax (siehe Dokumentation).<br />

Option<br />

Wirkung<br />

Tabelle 7.2: Optionen für grep (Auswahl)<br />

-c (count) Liefert nur die Anzahl der passenden Zeilen<br />

-i (ignore) Klein- und Großbuchstaben werden nicht unterschieden<br />

-l (list) Statt kompletter Zeilen werden nur Dateinamen ausgegeben<br />

-n (number) <strong>Die</strong> Zeilennummer der gefundenen Zeilen in der Eingabe wird mit ausgegeben<br />

-r (recursive) Auch Dateien in Unterverzeichnissen usw. mit durchsuchen<br />

-v (invert) Nur Zeilen, die das Muster nicht enthalten, werden ausgegeben<br />

7.3 Dateien nach Textteilen durchsuchen – grep<br />

grep-Versionen<br />

Vielleicht eines der wichtigsten <strong>Linux</strong>-Programme, die reguläre Ausdrücke benutzen,<br />

ist grep. Es durchsucht eine oder mehrere Dateien nach Zeilen, auf die<br />

ein angegebener regulärer Ausdruck passt. Passende Zeilen werden ausgegeben,<br />

nicht passende verworfen.<br />

Von grep existieren zwei Ableger: Traditionell erlaubt das abgespeckte fgrep<br />

(engl. fixed, »fest vorgegeben«) keine regulären Ausdrücke, sondern nur feste Zeichenketten,<br />

ist dafür aber sehr flott. Zusätzliche Möglichkeiten bietet egrep (engl.<br />

extended, »erweitert«), arbeitet <strong>des</strong>halb jedoch recht langsam und benötigt viel<br />

Speicherkapazität.<br />

B<br />

Früher haben diese Anmerkungen tatsächlich im Großen und Ganzen gestimmt.<br />

Insbesondere verwendeten grep und egrep völlig verschiedene Verfahren<br />

zur Auswertung der regulären Ausdrücke, die je nach deren Gestalt<br />

und Umfang sowie der Größe der Eingabe zu ganz unterschiedlichen Laufzeitergebnissen<br />

führen konnten. Bei der unter <strong>Linux</strong> üblichen grep-Implementierung<br />

aus dem GNU-Projekt sind alle drei Varianten in Wirklichkeit<br />

dasselbe Programm und unterscheiden sich vor allem in der Syntax <strong>des</strong>sen,<br />

wonach gesucht werden soll.<br />

Syntax<br />

regulärer Ausdruck<br />

<strong>Die</strong> Syntax von grep erfordert min<strong>des</strong>tens die Angabe <strong>des</strong> regulären Ausdrucks,<br />

nach dem gesucht werden soll. Darauf folgt der Name der Textdatei (oder die<br />

Namen der Textdateien), die nach diesem Ausdruck durchsucht werden soll(en).<br />

Wenn kein Dateiname angegeben wurde, bezieht sich grep auf die Standard-Eingabe<br />

(siehe Kapitel 8).<br />

Der reguläre Ausdruck, nach dem die Eingabe durchsucht wird, darf neben<br />

den grundlegenden Bausteinen aus Abschnitt 7.1 auch die meisten Erweiterungen<br />

aus Abschnitt 7.2 enthalten. <strong>Die</strong> Operatoren »\+«, »\?« und »\{« müssen Sie bei<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!