Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung | |||
lpi1:regulaere_ausdruecke [2019/01/09 07:53] |
lpi1:regulaere_ausdruecke [2022/08/17 08:27] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ===== Hilfreich ===== | ||
+ | Kurzbefehl für buntes ''egrep'' einrichten: | ||
+ | alias g='grep -E --color' | ||
+ | ==== Beispiel ==== | ||
+ | g home /etc/passwd | ||
+ | ===== Metazeichen ===== | ||
+ | Diese Übersicht ist nicht vollständig. Vollständige Übersichten gibt es z.B. hier: | ||
+ | man grep | ||
+ | perldoc perlre | ||
+ | |||
+ | ==== Anker ==== | ||
+ | |''^''|Zeilenanfang| | ||
+ | |''$''|Zeilenende| | ||
+ | |||
+ | === Beispiel === | ||
+ | Alle Nutzer mit ''bash'' als Shell: | ||
+ | g 'bash$' /etc/passwd | ||
+ | |||
+ | ==== Zeichenauswahl ==== | ||
+ | |''.''| ein beliebiges Zeichen | | ||
+ | |''[aeiou]''| Eines der Zeichen a, e, i, o oder u | | ||
+ | |''[a-z]'' | Ein ASCII-Kleinbuchstabe | | ||
+ | |''[0-9A-Fa-f]'' | Ein Hexadezimalziffer | | ||
+ | |''[^aeiou]''| Ein Zeichen, aber nicht a, e, i, o oder u| | ||
+ | |''[^0-9A-Fa-f]'' | **keine** Hexadezimalziffer | | ||
+ | |||
+ | ==== Wiederholungszeichen ==== | ||
+ | |''?''| 0 oder 1 mal| | ||
+ | |''*''| 0 oder mehr mal| | ||
+ | |''+''| 1 oder mehr mal| | ||
+ | |''{n,m}''| mindestens n-Mal, maximal m-Mal| | ||
+ | |''{n}''|genau n-Mal| | ||
+ | |||
+ | === Beispiel === | ||
+ | Alle Nutzernamen: | ||
+ | g -o '^[^:]+' /etc/passwd | ||
+ | |||
+ | |||
+ | ==== Gruppierung ==== | ||
+ | |''(samba)''| Das Wort ''samba'' gruppieren und fangen | | ||
+ | |||
+ | === Beispiel === | ||
+ | sed -n 's/^\([^:]\+\)/\1-test/p' /etc/passwd | ||
+ | |||
+ | Vornamen und Nachnamen umdrehen | ||
+ | (Johann Wolfgang von Goethe -> Goethe, Johann Wolfgang von) | ||
+ | sed -e 's/^\([[:space:][:alpha:]-]\+\)[[:space:]]\+\([[:alpha:]-]\+\)$/\2, \1/g' namen | ||
+ | mittlerweile geht es auch mit -E | ||
+ | sed -E 's/^([[:space:][:alpha:]-]+)[[:space:]]+([[:alpha:]-]+)$/\2, \1/g' namen | ||
+ | |||
+ | == Zeilen löschen == | ||
+ | sed -e '3d' namen | ||
+ | sed -e '3,5d' namen | ||
+ | sed -e '/Johann/d' namen | ||
+ | ====== weiterführende Links ====== | ||
+ | Einführung in Reguläre Ausdrücke: | ||
+ | * http://www.regenechsen.de | ||
+ | |||
+ | Tutorials und Referenz: | ||
+ | * http://regular-expressions.info | ||
+ | |||
+ | Hier gibt es ein nettes Tool um regular expressions zu bauen und zu testen: | ||
+ | * http://erik.eae.net/playground/regexp/regexp.html | ||
+ | |||
+ | Hier ein Tutorial von Heiko Baur: | ||
+ | * http://www.belbardonisakel.de/slides/regexp.pdf | ||
+ | |||
+ | Editor für Reguläre Ausdrücke: | ||
+ | * https://regex101.com/ | ||
+ | |||
+ | RegEx Kreuzworträtsel | ||
+ | * https://regexcrossword.com/challenges/beginner/puzzles/1 |