Startseite > Textverarbeitung & Suche > sed

sed: Der Stream-Editor

sed (stream editor) ist ein leistungsstarkes Unix-Dienstprogramm zur Bearbeitung von Textströmen. Es führt Transformationen, Filterungen, Löschungen, Einfügungen und andere Operationen auf Text durch, indem es reguläre Ausdrücke auf Eingaben anwendet, die über Dateien oder Pipes übergeben werden. Es ist für die nicht-interaktive Bearbeitung optimiert und wird häufig für die automatisierte Textverarbeitung in Skripten verwendet.

Übersicht

sed liest Eingabeströme (Dateien oder Standardeingabe) zeilenweise ein, wendet die angegebenen Skripte (Befehle) an und gibt das Ergebnis an die Standardausgabe aus. Es wird hauptsächlich zum Ändern von Textdatei-Inhalten, zum Suchen und Ersetzen bestimmter Muster sowie zum Löschen von Zeilen verwendet.

Hauptfunktionen

  • Leistungsstarke Mustererkennung mit regulären Ausdrücken
  • Textersetzung (substitution)
  • Zeilenlöschung (deletion)
  • Zeileneinfügung und -anhängen (insertion/appending)
  • Direkte Bearbeitung von Dateiinhalten (Option -i)

Wichtige Optionen

Die wichtigsten Optionen des sed-Befehls steuern die Art der Skriptangabe oder das Ausgabeverhalten.

Skript- und Verhaltenssteuerung

Erzeugter Befehl:

Kombinieren Sie die Befehle.

Beschreibung:

`sed` Führen Sie den Befehl aus.

Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.

Anwendungsbeispiele

Lernen Sie Textverarbeitungsmethoden durch verschiedene Anwendungsbeispiele von sed kennen.

Bestimmten String ersetzen

sed 's/old_text/new_text/g' dateiname.txt

Ersetzt alle Vorkommen von 'old_text' durch 'new_text' in der Datei. Das Flag 'g' ersetzt alle Übereinstimmungen in einer Zeile.

Zeilen mit bestimmtem Muster löschen

sed '/error/d' logdatei.txt

Löscht alle Zeilen, die das Wort 'error' enthalten.

Dateiinhalt direkt bearbeiten

sed -i.bak 's/DEBUG=true/DEBUG=false/g' config.txt

Ändert 'DEBUG=true' zu 'DEBUG=false' in der Originaldatei 'config.txt' und erstellt eine Sicherungskopie mit der Erweiterung '.bak'.

Nur die ersten 5 Zeilen ausgeben

sed -n '1,5p' daten.txt

Gibt nur die ersten 5 Zeilen der Datei aus. Verwendet die Option '-n' und den Befehl '1,5p'.

Leere Zeilen löschen

sed '/^$/d' dokument.txt

Löscht vollständig leere Zeilen aus der Datei.

Tipps & Hinweise

Punkte, die bei der Verwendung von sed zu beachten sind, und Tipps für eine effiziente Nutzung.

Missverständnis bezüglich der Option sed -d

Bezüglich des Hinweises 'sed-d' ist zu beachten, dass `-d` keine gültige Befehlszeilenoption für `sed` ist. Der `sed`-Befehl verwendet Optionen wie `-e`, `-f`, `-i`, `-n` usw. Wenn Sie `sed -d` ausführen, interpretiert `sed` `-d` entweder als Dateinamen oder es tritt ein Fehler wegen einer unbekannten Option auf.

Korrekte Verwendung des d-Befehls

`d` ist ein Befehl, der innerhalb eines `sed`-Skripts verwendet wird, um bestimmte Zeilen zu löschen. Zum Beispiel löscht `sed '/pattern/d' dateiname` alle Zeilen, die 'pattern' enthalten. Dies ist ein völlig anderes Konzept als die Befehlszeilenoption `-d`.

Beispiel für die Verwendung des d-Befehls

sed '/zu_löschender_string/d' eingabe.txt > ausgabe.txt

Löscht Zeilen aus der Datei, die 'zu_löschender_string' enthalten.

Verwendung regulärer Ausdrücke

Die Stärke von sed liegt in regulären Ausdrücken. Wenn Sie verschiedene Metazeichen (z. B. `^`, `$`, `*`, `+`, `?`, `.` usw.) beherrschen, können Sie komplexe Mustererkennungen und Ersetzungen durchführen.

  • `^`: Zeilenanfang
  • `$`: Zeilenende
  • `.`: Jedes einzelne Zeichen
  • `*`: Das vorhergehende Zeichen wird null- oder mehrmals wiederholt
  • `s/alt/neu/g`: Ersetzt alle 'alt' durch 'neu'
  • `/muster/d`: Löscht Zeilen mit 'muster'

Gewöhnen Sie sich an die Erstellung von Sicherungsdateien

Wenn Sie Dateien mit der Option `-i` direkt bearbeiten, ist es ratsam, immer eine Sicherungserweiterung anzugeben, um den Verlust der Originaldatei zu vermeiden (z. B. `sed -i.bak ...`).



Gleiche Kategorie Befehle