Nun kommt ein Thema, was mich persönlich jedes mal aufs neue stört: reguläre Ausdrücke (regular expressions – RegEx).
Regex sind Suchmuster, welche verwendet werden können um z.B. Dateien und oder bestimmte/ähnliche Strings in Dateien zu finden.
Anbei eine Tabelle mit den wichtigsten und häufig verwendeten regulären Ausdrücken:
Zeichen | Beschreibung |
---|---|
[abc] | eines der Zeichen a, b oder c |
[0-6] | eines der Zeichen 0 bis 6. Der Bindestrich dient dabei als Indikator für einen Bereich |
[a-zA-Z0-9] | ein beliebiger Buchstabe (egal ob groß oder klein) oder eine Ziffer |
[^abc] | ein beliebiges Zeichen außer a, b oder c |
[a-z-], [-a-z], [a-z\-0-9] | Auswahl enthält Bindestrich |
\d | (digit) - eine Ziffer - entspricht: [0-9] |
\D | (no digit) - ein Zeichen, dass keine Ziffer ist - entspricht [^\d] |
\w | (word) - ein Buchstabe, eine Ziffer oder ein Unterstrich (auch Umlaute) - entspricht: [a-zA-Z0-9_] |
\W | (no word) - ein Zeichen, dass weder ein Buchstabe, Ziffer noch Unterstrich ist - entspricht: [^\w] |
\s | (whitespace) - Leerzeichen und Klasse der Steuerzeichen ( \f, \n, \r, \t, \v |
\S | (no whitespace) - Zeichen, dass kein Whitespace ist - entspricht: [^\s] |
\ | hebt die Funktion des nächsten Zeichens auf (s. Bindestrich Zeile 3) |
\b | leere Zeichenkette am Wortanfang oder Wortende |
\B | leere Zeichenkette, die weder am Anfang noch am Ende des Wortes stehen |
\< | leere Zeichenkette am Wortanfang |
\> | leere Zeichenkette am Wortende |
\n | Zeilenumbruch (UNIX) |
\r | Zeilenumbruch (Mac) |
\r\n | Zeilenumbruch (Windows) |
. | exakt ein beliebiges Zeichen |
? | vorherige Ausdruck ist optional (kommt null oder einmal vor) - entspricht {0,1} |
+ | vorherige Ausdruck muss mindestens einmal vorkommen, darf aber auch mehrfach auftreten - entspricht {1,} |
* | vorherige Ausdruck darf beliebig oft vorkommen - entspricht {0,} |
{n} | vorherige Ausdruck muss exakt n-mal vorkommen - entspricht {n,n} |
{min,} | vorherige Ausdruck muss mindestens min-mal auftreten, darf aber auch öfters |
{min,max} | vorherige Ausdruck muss mindestens min-mal und maximal max-mal vorkommen |
{0,max} | vorherige Ausdruck darf maximal max-mal vorkommen |
^ | Zeilenanfang (nicht verwechseln mit [^abc] - Negierung) |
$ | Zeilenende |
Man kann die Suchmuster wie folgt verwenden:
# durchsucht die Datei nach dem Suchmuster $ grep -e suchmuster Datei # Sucht (s) in der Datei nach dem Suchmuster und ersetzt alle Vorkommen (g) mit dem Replacestring $ sed 's/suchmuster/replacestring/g' datei
In den weiteren Beiträgen werden sicherlich noch Anwendungsbeispiele anfallen 🙂