Zum Inhalt springen

Sed (Unix)

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 1. August 2002 um 07:15 Uhr durch Hannes Hirzel (Diskussion | Beiträge) (Link auf Kurzanleitung eingefügt). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Sed ist ein Unix?-Werkzeug mit dem Textdatein geändert werden können. Es ist ein nicht-interaktiver Editor.

Es liest eine Eingabedatei Zeile für Zeile und verändert diese entsprechend den Regeln, die man mit einer einfachen Sprache in einem Skript vorgegeben hat und gibt sie wieder aus. In den Regeln können reguläre Ausdrücke verwendet werden.


"Sed" ist die Abkürzung von Stream EDitor. Eine typische Verwendung ist mit einer Unix pipe (Deutsch?):


sed kann auch benutzt werden um z.B. 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 auf die Ausgabedatei schreiben soll, ausser es wird durch den p-Befehl explizit gefordert. sed kopiert nämlich üblicherweise einfach die Eingabezeilen in die Ausgabedatei und wendet dabei die Befehle an.


oder auch um die entsprechenden Zeilen zu löschen


Das Beispiel wiederspiegelt auch den typischen Einsatzbereich von sed: Einfache Einzeilerprogramme oder Programme, die aus mehrfacher Anwendung desselben Befehls bestehen. Für komplexere Aufgaben wird dann meist awk oder auch gleich Perl benutzt.


Sed ist einer der ersten Unix-Befehle, die die Arbeit mit Textdateien von der Kommandozeile aus ermöglichten. In Kombination mit einem anderen Werkzeug awk kann man mit geringem Aufwand leistungsfähige Programmoperationen durchführen. Sed war eines der Werkzeuge mit dem die Benutzung von regulären Ausdrücken bekannt wurde.


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


Im GNU-Projekt sind Open-Source-Versionen verfügbar, so dass sed auf jedem Betriebsystem verfügbar ist, das über einen C-Compiler verfügt.


Weblinks: