Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


lpi1:regulaere_ausdruecke

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
lpi1:regulaere_ausdruecke [2019/01/09 07:53]
lpi1:regulaere_ausdruecke [2024/11/21 17:23] (aktuell)
Zeile 1: Zeile 1:
 +===== buntes grep =====
 +Kurzbefehl für buntes ''​egrep''​ einrichten:
 +  alias g='​grep -E --color=auto'​
 +== Beispiel ==
 +  g home /etc/passwd
  
 +===== Metazeichen =====
 +Diese Übersicht ist nicht vollständig. Vollständige Übersichten gibt es z.B. hier:
 +  man grep
 +
 +==== Anker ====
 +|''​^''​|Zeilenanfang|
 +|''​$''​|Zeilenende|
 +
 +=== Beispiel ===
 +Alle Nutzer mit ''​bash''​ als Shell:
 +  grep -E --color '​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 ====
 +|''​{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 ===
 +Alle Nutzernamen:​
 +  grep -E --color -o '​^[^:​]+'​ /etc/passwd
 +
 +==== gruppieren / kopieren ====
 +|''​(…)''​|Bereich der kopiert werden soll|
 +|''​\1''​|Kopie einfügen|
 +
 +Alle Nutzer deren Name nicht im Namen ihres Heimatverzeichnises enthalten ist:
 +  grep -vE '​^([^:​]+):​x:​[0-9]+:​[0-9]+:​[^:​]*:​[^:​]*\1'​ /etc/passwd
 +
 +====== sed ======
 +
 +==== Suchen und ersetzen ====
 +Suchen und ersetzen mit sed in 3 Schritten:
 +
 +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 ======
 +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