Wenn du bis hierher gekommen bist, kannst du sed bereits produktiv einsetzen.

In diesem Bonuskapitel schauen wir hinter die Kulissen:

  • Was ist der Pattern Space?
  • Was ist der Hold Space?
  • Wie funktionieren Labels und Sprünge?
  • Wann sind solche Techniken wirklich sinnvoll?

⚠️ Dieses Kapitel ist optional – für Neugierige und Fortgeschrittene.

🔹 Der Pattern Space – das Arbeitsfenster von sed

sed arbeitet zeilenweise.
Für jede eingelesene Zeile passiert:

  1. Zeile wird in den Pattern Space geladen
  2. Befehle werden angewendet
  3. Ergebnis wird ausgegeben (sofern nicht unterdrückt)
  4. Nächste Zeile wird geladen

Beispiel:

sed 's/foo/bar/' datei.txt

Hier wird jede Zeile einzeln in den Pattern Space geladen und bearbeitet.

👉 Der Pattern Space ist also die „aktuelle Arbeitszeile“.

🔹 Der Hold Space – temporärer Speicher

Neben dem Pattern Space gibt es einen zweiten Speicherbereich:

👉 den Hold Space

Dort kann sed Inhalte zwischenspeichern.

Wichtige Befehle:

h → Pattern Space in Hold Space kopieren

H → anhängen

g → Hold Space in Pattern Space kopieren

G → anhängen

x → beide tauschen

Beispiel: Erste Zeile am Ende erneut ausgeben

Datei:
Was passiert?

  • 1h → erste Zeile in Hold Space speichern
  • 1!H → alle weiteren Zeilen anhängen
  • $g → am Ende Hold Space zurückholen

Das ist bereits fortgeschritten – aber es zeigt das Prinzip.

🔹 7.3 Labels und Sprünge

sed kann mit Marken arbeiten.

Syntax:

:a
... Befehle ...
b a
  • :a → Label definieren
  • b a → springe zu Label a
  • t a → springe bei erfolgreicher Substitution

Beispiel: Mehrfache Leerzeichen reduzieren

sed ':a; s/  / /; t a' datei.txt

Was passiert?

  • Ersetze doppelte Leerzeichen durch ein einzelnes
  • Wenn eine Ersetzung stattfand (t a), springe zurück
  • Wiederhole, bis keine doppelten Leerzeichen mehr existieren

👉 Das ist eine einfache Schleife in sed.

🔹 Mehrzeilige Verarbeitung

Normalerweise arbeitet sed zeilenweise.

Mit N können mehrere Zeilen zusammengeführt werden.

Beispiel:

sed 'N; s/n/ /' datei.txt

👉 Liest zwei Zeilen ein und ersetzt den Zeilenumbruch durch ein Leerzeichen.

Das ist hilfreich bei:

  • Logdateien
  • strukturierten Texten
  • Konfigurationsblöcken

⚠️ Wann solltest du diese Techniken verwenden?

Nur wenn:

  • Einzeiler nicht mehr reichen
  • Logik über mehrere Zeilen nötig ist
  • du wirklich sed einsetzen willst
  • Oft ist ein kleines Bash- oder awk-Skript klarer.

👉 Fortgeschrittene sed-Techniken sind mächtig – aber nicht immer die beste Lösung.

✅ Übung (Bonus)

Aufgabe 1

Erstelle eine Datei:

cat > bonus.txt <<'EOF'
Dies    ist   ein   Test
EOF

Reduziere alle mehrfachen Leerzeichen auf genau eines – mit einer sed-Schleife.

Aufgabe 2

Erstelle eine Datei mit zwei Zeilen:

Hallo
Welt

Verbinde beide Zeilen zu:

Hallo Welt

Mit einem sed-Befehl.

✅ Zusammenfassung

In diesem Bonuskapitel hast du gelernt:

  • was der Pattern Space ist
  • wie der Hold Space funktioniert
  • wie man mit Labels und Sprüngen arbeitet
  • wie einfache Schleifen in sed möglich sind

👉 Diese Techniken machen sed extrem flexibel – aber auch komplexer.
Du kannst jetzt:

Du kannst jetzt:

  • Text suchen und ersetzen
  • Zeilen gezielt bearbeiten
  • sed-Skripte erstellen
  • sed in Pipelines einsetzen
  • Konfigurationsdateien automatisieren
  • und fortgeschrittene Techniken verstehen

Damit beherrschst du sed auf einem produktiven Linux-Administrator-Niveau.

 

📚 Inhaltsverzeichnis

👉 sed Kapitel 1: Grundlagen von sed – erste Ersetzungen & Konzepte
👉 sed Kapitel 2: Suchen & Ersetzen mit sed – Grundlagen & Regex
👉 sed Kapitel 3: Zeilen bearbeiten mit sed
👉 sed Kapitel 4: sed-Skripte schreiben & kombinieren
👉 sed Kapitel 5: sed in Kombination mit anderen Tools
👉 sed Kapitel 6: Praxisprojekt – Konfigurationsdateien automatisch bereinigen & anpassen

⭐ Bonus-Kapitel

👉 sed Kapitel 7: Bonus – Profi-Tipps & Best Practices für sed im Alltag