Sed (Unix)

Unix-Werkzeug
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 2. August 2002 um 12:33 Uhr durch gw.phinware.de (Diskussion) (sed wird INHO als Eigenname auch am Satzanfang kleingeschrieben.). Sie kann sich erheblich von der aktuellen Version unterscheiden.

sed ist ein Computerprogramm. Es wurde bekannt als Unix-Werkzeug, mit dem Textdateien geändert werden können. sed ist ein nicht-interaktiver Editor, der die Bearbeitung von Textdateien von der Kommandozeile aus ermöglicht.

"sed" steht für "Stream EDitor".


Sed liest eine Eingabedatei Zeile für Zeile, und gibt jede Zeile entsprechend vorgegebener Regeln verändert wieder aus.


Eine typische Anwendung ist das Ersetzten von Ausdrücken:


sed -e 's/alt/neu/g' Eingabedatei > Ausgabedatei


In diesem Beispiel ist durch das '-e' angedeutet, dass der nachfolgende Text die Veränderungsregel angibt.

Die Veränderungsregel 's/x/y/g' besagt, dass in jeder Zeile der Eingabedatei

die Zeichenfolge 'alt' durch die Zeichenfolge 'neu' zu ersetzen ist.

Das führende 's' bedeutet, dass eine Zeichen-Ersetzung (substitution) stattfinden soll.

Das 'g' am Ende gibt vor, dass die Veränderung global, d.h. für alle Vorkommen in der Zeile, vorgenommen werden soll.


Man kann sed auch benutzen, um alle Zeilen einer Datei auszudrucken, die einem bestimmten Muster entsprechen:

sed -n -e '/einMuster/p' eingabeDateiName

Die Option '-n' gibt dabei an, dass sed nichts ausgeben soll, ausser es wird durch den 'p'-Befehl explizit gefordert. Üblicherweise kopiert sed nämlich jede Eingabezeile in die Ausgabedatei.


Diese Beispiele zeigen einen typischen Einsatzbereich von sed:

Einfache Aufgeben, die durch kurze Regeln beschreibbar sind.

Diese Regeln erlauben weiterhin den Einsatz Regulärer Ausdrücke, die (u.a.) durch sed bekannt geworden sind.


Weiter kann man die Regeln durch eine einfache Skriptsprache auch zu größeren Programmen zusammenfassen.

Sed's Programmiersprache kennt zwar keine Variabeln und hat nur einfache Vergleichsmöglichkeiten und einen GOTO Befehl; sie ist aber trotzdem turing-äquivalent.


Für komplexere Aufgaben werden gewöhnlich awk oder Perl, oft in Kombination mit anderen Programmierwerkzeugen, benutzt.


Bildschirmorientierte Texteditoren unter Unix sind u.a. ed und vi.


Im [GNU]-Projekt sind Open-Source-Versionen verfügbar, die sed auf jedem Betriebsystem verfügbar machen, das über einen C-Compiler verfügt.


Kurzanleitung
GNU-Anleitung (englisch)