Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Nächste Überarbeitung | Vorherige Überarbeitung | ||
lpi1:regulaere_ausdruecke [2011/07/19 08:11] 127.0.0.1 Externe Bearbeitung |
lpi1:regulaere_ausdruecke [2024/11/21 17:23] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ===== Hilfreich ===== | + | ===== buntes grep ===== |
Kurzbefehl für buntes ''egrep'' einrichten: | Kurzbefehl für buntes ''egrep'' einrichten: | ||
- | alias g='egrep --colour' | + | alias g='grep -E --color=auto' |
- | + | == Beispiel == | |
- | ==== Beispiel ==== | + | |
g home /etc/passwd | g home /etc/passwd | ||
Zeile 9: | Zeile 8: | ||
Diese Übersicht ist nicht vollständig. Vollständige Übersichten gibt es z.B. hier: | Diese Übersicht ist nicht vollständig. Vollständige Übersichten gibt es z.B. hier: | ||
man grep | man grep | ||
- | perldoc perlre | ||
==== Anker ==== | ==== Anker ==== | ||
Zeile 17: | Zeile 15: | ||
=== Beispiel === | === Beispiel === | ||
Alle Nutzer mit ''bash'' als Shell: | Alle Nutzer mit ''bash'' als Shell: | ||
- | g 'bash$' /etc/passwd | + | grep -E --color 'bash$' /etc/passwd |
==== Zeichenauswahl ==== | ==== Zeichenauswahl ==== | ||
|''.''| ein beliebiges Zeichen | | |''.''| ein beliebiges Zeichen | | ||
|''[aeiou]''| Eines der Zeichen a, e, i, o oder u | | |''[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| | |''[^aeiou]''| Ein Zeichen, aber nicht a, e, i, o oder u| | ||
+ | |''[^0-9A-Fa-f]'' | **keine** Hexadezimalziffer | | ||
==== Wiederholungszeichen ==== | ==== Wiederholungszeichen ==== | ||
- | |''?''| 0 oder 1 mal| | ||
- | |''*''| 0 oder mehr mal| | ||
- | |''+''| 1 oder mehr mal| | ||
|''{n,m}''| mindestens n-Mal, maximal m-Mal| | |''{n,m}''| mindestens n-Mal, maximal m-Mal| | ||
+ | |''{n}''|genau n-Mal| | ||
+ | |''?''| 0 oder 1 mal, entspricht: ''{0,1}''| | ||
+ | |''*''| 0 oder mehr mal, entspricht: ''{0,}''| | ||
+ | |''+''| 1 oder mehr mal, entspricht: ''{1,}''| | ||
=== Beispiel === | === Beispiel === | ||
Alle Nutzernamen: | Alle Nutzernamen: | ||
- | g -o '^[^:]+' /etc/passwd | + | grep -E --color -o '^[^:]+' /etc/passwd |
+ | ==== gruppieren / kopieren ==== | ||
+ | |''(…)''|Bereich der kopiert werden soll| | ||
+ | |''\1''|Kopie einfügen| | ||
- | ==== Gruppierung ==== | + | Alle Nutzer deren Name nicht im Namen ihres Heimatverzeichnises enthalten ist: |
- | |''(samba)''| Das Wort ''samba'' gruppieren und fangen | | + | grep -vE '^([^:]+):x:[0-9]+:[0-9]+:[^:]*:[^:]*\1' /etc/passwd |
- | === Beispiel === | + | ====== sed ====== |
- | sed -n 's/^\([^:]\+\)/\1-test/p' /etc/passwd | + | |
- | Vornamen und Nachnamen umdrehen | + | ==== Suchen und ersetzen ==== |
- | (Johann Wolfgang von Goethe -> Goethe, Johann Wolfgang von) | + | Suchen und ersetzen mit sed in 3 Schritten: |
- | sed -e 's/^\([[:space:][:alpha:]-]\+\)[[:space:]]\+\([[:alpha:]-]\+\)$/\2, \1/g' namen | + | |
+ | Anzeigen, was geändert würde: | ||
+ | sed -rn 's/bash$/fish/p' /etc/passwd | ||
+ | |||
+ | Komplette Datei inkl. Änderungen anzeigen: | ||
+ | sed -r 's/bash$/fish/' /etc/passwd | ||
+ | |||
+ | Datei tatsächlich ändern: | ||
+ | cp /etc/passwd . | ||
+ | sed -ir 's/bash$/fish/' passwd | ||
+ | |||
+ | ==== Zeilen löschen ==== | ||
+ | sed -e '3d' namen | ||
+ | sed -e '3,5d' namen | ||
+ | sed -e '/Johann/d' namen | ||
====== weiterführende Links ====== | ====== weiterführende Links ====== | ||
Einführung in Reguläre Ausdrücke: | Einführung in Reguläre Ausdrücke: | ||
* http://www.regenechsen.de | * 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: | Hier gibt es ein nettes Tool um regular expressions zu bauen und zu testen: | ||
Zeile 54: | Zeile 75: | ||
Hier ein Tutorial von Heiko Baur: | Hier ein Tutorial von Heiko Baur: | ||
* http://www.belbardonisakel.de/slides/regexp.pdf | * 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 |