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.[1]
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.[2] 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:
ed -s DATEI <<! 1,$s/vi/ex/g w q !
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.
Einzelnachweise
- ed. In: The Open Group Base Specifications Issue 7. Abgerufen am 22. November 2016.
- 15. November 2000: Re: emacs and other editors. Abgerufen am 8. Januar 2017.
Weblinks
ed
: edit text – Open Group Base Specificationed(1)
: text editor – OpenBSD General Commands Manualed(1)
: line-oriented text editor – Debian GNU/Linux Ausführbare Programme oder Shell-Befehle Handbuchseite- Dennis Ritchie: An incomplete history of the QED Text Editor
- GNU ed – A line-oriented text editor
- Ed, man! !man ed – bekannte Scherz-Mail über ed (englisch)