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 ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
7.2 Reguläre Ausdrücke: Extras 105<br />
7.2 Reguläre Ausdrücke: Extras<br />
<strong>Die</strong> Beschreibung aus dem vorigen Abschnitt gilt für praktisch alle <strong>Linux</strong>-Programme,<br />
die reguläre Ausdrücke verarbeiten. Diverse Programme unterstützen<br />
aber auch verschiedene Erweiterungen, die entweder Schreibvereinfachungen Erweiterungen<br />
bieten oder tatsächlich zusätzliche Dinge erlauben. <strong>Die</strong> »Krone der Schöpfung«<br />
markieren hier die modernen Skriptsprachen wie Tcl, Perl oder Python, deren<br />
Implementierungen inzwischen weit über das hinausgehen, was reguläre Ausdrücke<br />
im Sinne der theoretischen Informatik können.<br />
Einige gängige Erweiterungen sind:<br />
Wortklammern <strong>Die</strong> Sequenz »\« am Ende eines Worts (da, wo ein Buchstabe von einem Nichtbuchstaben<br />
gefolgt wird).<br />
Gruppierung Runde Klammern (»(…)«) erlauben es, Aneinanderreihungen von<br />
regulären Ausdrücken zu wiederholen: »a(bc)*« passt auf ein »a« gefolgt<br />
von beliebig vielen Wiederholungen von »bc«, im Gegensatz zu »abc*«, das<br />
auf »ab« gefolgt von beliebig vielen Wiederholungen von »c« passt.<br />
Alternative Mit dem vertikalen Balken (»|«) können Sie eine Auswahl zwischen<br />
mehreren regulären Ausdrücken treffen: Der Ausdruck »Affen(brot|schwanz|kletter)baum«<br />
passt genau auf »Affenbrotbaum« 2 , »Affenschwanzbaum« 3 oder »Affenkletterbaum«.<br />
Optionales Das Fragezeichen (»?«) macht den vorstehenden regulären Ausdruck<br />
optional, das heißt, er tritt entweder einmal auf oder gar nicht. »Boot(smann)?«<br />
passt auf »Boot« oder »Bootsmann«.<br />
Min<strong>des</strong>tens einmal Vorhandenes Das Pluszeichen (»+«) entspricht dem Wiederholungsoperator<br />
»*«, bis darauf, dass der vorstehende Ausdruck min<strong>des</strong>tens<br />
einmal auftreten muss, also nicht ganz entfallen darf.<br />
Bestimmte Anzahl von Wiederholungen Sie können in geschweiften Klammern<br />
eine Min<strong>des</strong>t- und eine Maximalanzahl von Wiederholungen angegeben<br />
werden: »ab{2,4}« passt auf »abb«, »abbb« und »abbbb«, aber nicht auf »ab«<br />
oder »abbbbb«. Sie können sowohl die Min<strong>des</strong>t- als auch die Maximalanzahl<br />
weglassen; fehlt die Min<strong>des</strong>tanzahl, wird 0, fehlt die Maximalanzahl,<br />
so wird »Unendlich« angenommen.<br />
Rückbezug Mit einem Ausdruck der Form »\n« können Sie eine Wiederholung<br />
<strong>des</strong>jenigen Teils in der Eingabe verlangen, der auf den Klammerausdruck<br />
Nr. n im regulären Ausdruck gepasst hat. »(ab)\1« zum Beispiel passt auf<br />
»abab«, und wenn bei der Bearbeitung von »(ab*a)x\1« die Klammer auf abba<br />
gepasst hat, dann passt der gesamte Ausdruck auf abbaxabba (und nichts<br />
anderes). Weitere Details finden Sie in der Dokumentation zu GNU grep.<br />
»Bescheidene« Vorgehensweise <strong>Die</strong> Operatoren »*«, »+« und »?« sind normalerweise<br />
»gierig«, das heißt, sie versuchen auf so viel der Eingabe zu passen<br />
wie möglich: »^a.*a« bezogen auf die Eingabe »abacada« passt auf »abacada«,<br />
nicht »aba« oder »abaca«. Es gibt aber entsprechende »bescheidene« Versionen<br />
»*?«, »+?« und »??«, die auf so wenig der Eingabe passen wie möglich. In<br />
unserem Beispiel würde »^a.*?a« auf »aba« passen. Auch die geschweiften<br />
Klammern haben möglicherweise eine bescheidene Version.<br />
Nicht je<strong>des</strong> Programm unterstützt jede Erweiterung. Tabelle 7.1 zeigt eine<br />
Übersicht der wichtigsten Programme. Insbesondere Emacs, Perl und Tcl unterstützen<br />
noch jede Menge hier nicht diskutierte Erweiterungen.<br />
2 Adansonia digitata<br />
3 Volkstümlicher Name für die Araukarie (Araucaria araucana)<br />
Copyright © 2012 <strong>Linup</strong> <strong>Front</strong> GmbH