Sed (Unix)

sed steht für Stream EDitor und ist ein Unix-Werkzeug, mit dem Text-Datenströme bearbeitet werden können. Der Datenstrom kann auch aus einer Datei gelesen werden. Im Gegensatz zu einem Texteditor wird die Ursprungsdatei aber nicht verändert.

Im Gegensatz zu einem interaktiven Texteditor, wie etwa dem vi, wird sed mittels eines Skripts gesteuert.

Der sed-Befehlssatz orientiert sich an jenem des zeilenorientierten Texteditors ed. Dabei werden für die Text-Durchmusterung laut der POSIX-Spezifikation eine bestimmte Abart der Regular Expressions, sogenannte (POSIX-) Basic Regular Expressions (BRE) verwendet.[1] Die GNU-Implementation verwendet allerdings GNU-BREs, die von POSIX-BREs geringfügig abweichen.

Auch wenn der Sprachumfang von sed ziemlich limitiert und spezialisiert erscheint, so handelt es sich doch um eine Turing-vollständige Sprache. Beweisen kann man die Turing-Vollständigkeit, indem man eine Turingmaschine mittels sed programmiert[2][3] oder indem man mit sed einen Interpreter für eine andere, Turing-vollständige Sprache schreibt.[4]

Folglich konnten und wurden sogar Spiele wie Sokoban oder Arkanoid und andere anspruchsvolle Programme wie Debugger mit sed geschrieben.[5]

  1. sed-Spezifikation der Open Group. Abgerufen am 27. März 2013 (englisch).
  2. Implementation of a Turing Machine as Sed Script. Abgerufen am 23. März 2013 (englisch).
  3. Turing-Maschine mit sed. Abgerufen am 17. März 2013.
  4. cam.ac.uk (Memento vom 18. April 2010 im Internet Archive)
  5. Liste verschiedener sed-Skripte. Abgerufen am 19. November 2011 (englisch).

© MMXXIII Rich X Search. We shall prevail. All rights reserved. Rich X Search