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