In diesem Bonuskapitel schauen wir uns Funktionen an, die viele nicht kennen:

  • -P (Perl-Compatible Regular Expressions)
    Lookahead & Lookbehind
    komplexere Muster
    Grenzen von grep

⚠️ Hinweis: -P ist eine GNU-Erweiterung.
Getestet unter Ubuntu 22.04 und neuer.

🔹 PCRE mit -P

Standardmäßig nutzt grep:

  • BRE (Basic)
    mit -E → ERE
  • Mit -P aktivierst du PCRE (Perl-Regex).

Beispiel: Nur den Benutzernamen extrahieren

Testdatei:

cat > users.txt <<'EOF'
user=alice
user=bob
user=charlie
EOF

Nur den Wert nach = extrahieren:

grep -oP '(?<=user=)\w+' users.txt

Ausgabe:

alice
bob
charlie

👉 (?<=user=) ist ein Lookbehind.
Es sucht nach user=, gibt aber nur den Teil danach aus.

🔹 Lookahead verwenden

Beispiel:

cat > domains.txt <<'EOF'
admin@example.com
test@domain.org
invalid@test
EOF

Nur gültige Domains extrahieren:

grep -oP '\w+(?=@)' domains.txt

Ausgabe:

admin
test

🔹 Komplexe Passwort-Regel prüfen

Datei:

cat > passwords.txt <<'EOF'
Passwort1
test
Admin123
abcDEF9
EOF

Mindestens:

  • ein Großbuchstabe
  • eine Zahl
grep -P '^(?=.*[A-Z])(?=.*[0-9]).+$' passwords.txt

Ausgabe:

Passwort1
Admin123
abcDEF9

👉 Mehrere Lookaheads kombinierbar.

🔹 Mehrzeilige Suche mit -z

Standardmäßig arbeitet grep zeilenweise.

Mit -z wird der Input als null-separiert behandelt.

Beispiel:

printf "Zeile1\nZeile2\n" > multi.txt

Zwei Zeilen zusammen betrachten:

grep -zP 'Zeile1\nZeile2' multi.txt

👉 Selten nötig, aber technisch möglich.

🔹 Grenzen von grep

grep ist:

  • schnell
  • effizient
  • zeilenbasiert

Aber:

  • keine echte Mehrzeilen-Logik
  • keine komplexe Datenstruktur
  • keine Berechnungen

Wenn Logik nötig wird → awk.

🔹 Wann sollte man -P verwenden?

Sinnvoll bei:

  • präziser Extraktion
  • Lookahead/Lookbehind
  • komplexen Validierungen
  • E-Mail- oder IP-Parsing

Nicht sinnvoll bei:

  • einfachen Suchmustern
  • Performance-kritischen Massenscans

⚠️ Typische Fehler mit -P

Fehler 1: grep ohne PCRE-Unterstützung

Auf sehr alten Systemen:

grep -P pattern datei.txt

kann melden:

grep: unrecognized option '-P'

 

Ubuntu 22.04+ unterstützt -P.

Fehler 2: Zu komplexe Regex

Extrem komplexe PCRE können langsam werden.

Faustregel:

Je einfacher das Pattern, desto schneller grep.

✅ Übung

Aufgabe 1

Extrahiere nur den Domain-Teil nach @.

Aufgabe 2

Filtere Passwörter mit mindestens einem Klein- und Großbuchstaben.

Aufgabe 3

Extrahiere nur die Zahlen aus einer Datei mit gemischtem Text.

🧾 Zusammenfassung (Bonus)

In diesem Bonuskapitel hast du gelernt:

was -P ist
wie Lookahead & Lookbehind funktionieren
wie komplexe Muster geprüft werden
wo die Grenzen von grep liegen

👉 Mit diesem Wissen nutzt du grep auf fortgeschrittenem Niveau.

🎓 Abschluss des grep-Kurses

Du kannst jetzt:

  • einfache und komplexe Muster suchen
    reguläre Ausdrücke sicher einsetzen
  • Logs analysieren
  • Security-Checks durchführen
  • Performance optimieren
  • PCRE einsetzen

Damit beherrschst du grep auf Administrator-Niveau.

 

📚 Inhaltsverzeichnis

👉 grep Kapitel 1: Einführung in grep – Suchen verstehen
👉 grep Kapitel 2: Reguläre Ausdrücke mit grep – Muster richtig einsetzen
👉 grep Kapitel 3: Erweiterte Optionen & Praxis – grep im Admin-Alltag
👉 grep Kapitel 4: Performance & große Dateien – grep im Deep Dive
👉 grep Kapitel 5: grep im Security- und Log-Analyse-Einsatz

⭐ Bonus-Kapitel

👉 Kapitel 6 (Bonus): PCRE, Lookarounds & Deep Dive mit grep