Der Befehl egrep

egrep-featured

In diesem Beitrag lernen Sie den Befehl egrep (extended grep) kennen, welcher mit einer größeren Vielfalt verfügbarer regulärer Ausdrücke die erweiterte Variante des Befehls grep darstellt.

Im Folgenden werden lediglich die für egrep verfügbaren regulären Ausdrücke vorgestellt. Andere Funktionalitäten des Befehls können Sie in unserem Beitrag zum Befehl grep nachlesen.

Allgemeine Syntax

Die allgemeine Syntax des Befehls egrep ist weitgehend analog zur Syntax von grep:

egrep [Optionen] [Muster] [Dateipfad]

Der normale grep-Befehl bietet durch Hinzufügen der Option -E genau dieselben Funktionen wie egrep:

grep -E [Optionen] [Muster] [Dateipfad]

Reguläre Ausdrücke

Im Suchmuster des Befehls egrep sind verschiedene reguläre Ausdrücke anwendbar. Im Folgenden Abschnitt werden die Wichtigsten vorgestellt.

Zunächst gibt es einige Grundlagen zu beachten: Die meisten Zeichen, welche in regulären Ausdrücken einsetzbar sind, filtern sich selbst - haben also keine besondere Semantik. Dazu gehören etwa alle Zahlen und Buchstaben. Soll jedoch nach einem Sonderzeichen gesucht werden, ohne dass dieses von der REGEX-Engine interpretiert wird, so muss diesem ein Backslash "\" vorangestellt werden. Das Backslash selbst kann so etwa durch seine doppelte Angabe "\\" maskiert werden. Reguläre Ausdrücke lassen sich schließlich ähnlich wie etwa arithmetische Ausdrücke, klammern. Dabei kommen runde Klammern "()" zu Einsatz.

Sonderzeichen

In der folgenden Tabelle werden einige spezielle Operatoren und ihre Funktion aufgelistet:

Operator

Funktion

.

Beliebiges Zeichen

^

Anfang der Zeile

$

Ende der Zeile

<

Anfang eines Wortes

>

Ende eines Wortes

Bracket Expressions

Wird innerhalb eines regulären Ausdrucks ein Zeichen aus einer bestimmten Liste benötigt, so kann eine Bracket Expression verwendet werden. Hierbei werden die benötigten Zeichen in eckigen Klammern "[]" aufgelistet. Mit dem folgenden Ausdruck werden etwa die großen und kleinen a's gesucht:

[Aa]

Die Negation einer Liste lässt sich durch Hinzufügen des Caret "^" erreichen:

[^Aa]

Sogenannte Range Expressions helfen nun noch dabei, auch längere Listen kompakt darzustellen. Dabei werden zwei Zeichen - verbunden mit einem Bindestrich - in die Bracket Expression aufgenommen. Der Ausdruck passt dann auf alle Zeichen, welche sich in der totalen Ordnung der beiden Zeichen genau zwischen diesen befinden (inklusive der Zeichen selbst). Die Ordnung ist dabei von der verwendeten Locale abhängig. Die Semantik der meisten Zeichen geht bei Verwendung in einer Bracket Expression verloren. Bei dem "]" muss darauf geachtet werden, dass es sich stets am Anfang der Liste befindet. Das Caret "^" darf dagegen nicht am Anfang der Liste stehen, wenn es nicht interpretiert werden soll. Ein Bindestrich "-" muss an letzter Stelle stehen.

Zuletzt gibt es einige vorgefertigte Listen, welche zur Verwendung bereit stehen:

Ausdruck

Beinhaltet

[:alphanum:]

Alle Ziffern und Buchstaben

[:alpha:]

Alle Buchstaben

[:cntrl:]

Alle Kontrollzeichen

[:digit:]

Alle Ziffern

[:lower:]

Alle Kleinbuchstaben

[:punct:]

Alle Satzzeichen

[:blank:]

Leerzeichen

[:space:]

Alle Zeichen, die Leerraum erzeugen

[:upper:]

Alle Großbuchstaben

Wiederholungsoperatoren

Die folgenden Operatoren können eingesetzt werden, um einen vorangehenden Ausdruck optional oder mehrfach auszuwerten:

Operator

Funktion

?

Optionales, einmaliges Vorkommen des vorangehenden Ausdrucks

*

Optionales, mehrfaches (oder einmaliges) Vorkommen des vorangehenden Ausdrucks

+

Mindestens einmaliges Vorkommen des vorangehenden Ausdrucks

{n}

n-maliges Vorkommen des vorangehenden Ausdrucks

{n,}

Mindestens n-maliges Vorkommen des vorangehenden Ausdrucks

{n,m}

n bis m-maliges Vorkommen des vorangehenden Ausdrucks

Verknüpfung regulärer Ausdrücke

Mehrere reguläre Ausdrücke können auf verschiedene Weise miteinander verknüpft werden. Die einfachste Form ist hierbei das direkte Aneinanderreihen der Ausdrücke, wodurch solche Zeichenketten gesucht werden, welche auf diese Konkatenation passen.

Eine weitere erlaubte Form der Verknüpfung ist das Oder: Hierbei werden mehrere Ausdrücke mit dem Operator "|" verkettet. Der entstehende verkettete Ausdruck sucht Zeichenketten, welche entweder auf den einen, oder den anderen Ausdruck passen.

Präzedenzregeln

Die Operatoren unterliegen bei ihrer Auswertung einer bestimmten Rangfolge: Wiederholungen vor der Konkatenation vor der Oder-Verknüpfung. Die schon genannten Klammern können zum Überschreiben der Regeln einsetzt werden.

Abonniere JETZT unseren Newsletter!


Verpasse nie wieder neue Beiträge und exklusive Insider-Only-Inhalte!

Joel Benseler

Click Here to Leave a Comment Below

Leave a Comment: