===== 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