# Ed (Texteditor)

ed ist ein auf allen Unix- und unixoiden Systemen verfügbarer Texteditor, der interaktiv oder innerhalb von Shell-Skripten für Bearbeitungen von Textdateien verwendet werden kann. Er ist Teil des POSIX.1-Standards.

## Beschreibung

Wie die Editoren ex und EDLIN arbeitet ed zeilenorientiert: Die Textbearbeitung bezieht sich immer auf eine Zeile oder eine Auswahl von Zeilen. Im Unterschied zum vi stellt ed beim interaktiven Gebrauch auch nur eine Zeile zur Bearbeitung zur Verfügung, d. h., es ist nicht möglich, sich mit einem Cursor vertikal durch den Text zu bewegen.
Wie die anderen genannten Editoren hat ed einen Schreib- und einen Befehlsmodus. Im Schreibmodus werden die eingegebenen Zeichen der Zeile, die gerade bearbeitet wird, hinzugefügt. Im Befehlsmodus werden eingegebene Zeichen als Bearbeitungs-, Ansichts-, Speicher- oder Shell-Befehle interpretiert. Textkorrekturen bzw. -ersetzungen werden v. a. über Mustersuchen mittels regulärer Ausdrücke vorgenommen.
ed verbraucht nur wenig Speicherressourcen, braucht zur Ausführung keine besonderen Programm-Bibliotheken und funktioniert mit jeder Art von Terminal. ed befindet sich als gewöhnlich einziger Editor im ersten Binärdateienverzeichnis des Verzeichnisbaums (/bin) und kann damit immer dann aufgerufen werden, wenn überhaupt ein Programm ausgeführt werden kann. Die Anspruchslosigkeit des Editors und seine verlässliche Verfügbarkeit und Zugänglichkeit sind die wichtigsten Aspekte, unter denen er auch heute noch, insbesondere für Systemadministratoren, interessant ist. Da der ed nach dem Aufruf zunächst nur eine Zeile des Bildschirms für sich fordert, ist er gelegentlich auch dann nützlich, wenn eine bestimmte Veränderung z. B. in einem Shellskript vorgenommen werden soll, man aber gleichzeitig die Bildschirmausgabe des zuletzt gestarteten Prozesses nicht aus dem Auge verlieren will. Zudem lassen sich Programme ohne Umstand aus dem Editor heraus aufrufen: Die Bildschirmausgabe des Programmes bleibt wiederum sichtbar, und man kann umstandslos die Zeile weiter bearbeiten, an der vor dem Aufruf des Programms gearbeitet wurde.

## Geschichte

ed ist etwa so alt wie Unix, hat aber bereits einen Vorläufer im zunächst zeichenorientierten, später zeilenorientierten Editor QED der Mitte der 1960er Jahre programmiert wurde und von dem es unterschiedliche Versionen auf diversen Systemen gab. ed wurde Anfang der 1970er Jahre von Ken Thompson auf Grundlage der von Dennis Ritchie implementierten GCOS-Version von QED geschrieben. Weder in der Funktionalität noch in der Erscheinung hat er sich seit damals wesentlich verändert. Der nicht-interaktive Zeichenstromeditor sed beerbt den ed in einer seiner Grundfunktionen und baut sie aus. Im Gegensatz zu sed liest ed zunächst den gesamten Dateiinhalt in den Speicher, bevor er die angegebenen Befehle ausführt. Der zeilenorientierte Editor ex, der die Basis des vi bildet, ist durch ed inspiriert worden. Der Plan-9-Editor sam ähnelt ed, bricht jedoch mit der Zeilenorientiertheit und ist als primär visueller Editor konzipiert.

## Gebrauch

Der interaktive Gebrauch des ed findet sich ausführlich in den Handbuchseiten (man pages) jedes Unix(artigen)-Systems beschrieben. Das folgende Beispiel demonstriert die nicht-interaktive Verwendung von einem Shellskript aus:
In dem Beispiel wird ed mit der Datei DATEI aufgerufen, auf die eine als Heredoc angegebene ed-Befehlsfolge angewendet wird:
    „Von der ersten bis zur letzten Zeile: Ersetze jede Zeichenfolge vi durch die Zeichenfolge ex. Schreibe die bearbeitete Datei zurück. Beende.“
Die Option -s (für Skript oder suppress, engl. unterdrücke) unterdrückt dabei die Statusausgaben. Dies ist im nicht-interaktiven Gebrauch üblicherweise gewünscht.