WikiDer > Ed (Herausgeber)
Das Texteditored war der ursprüngliche Standardeditor auf dem UNIX-Betriebssystem. Es wurde ursprünglich geschrieben von Ken Thompson, das ist auch das erste Reguläre Ausdrücke in ed implementiert. Reguläre Ausdrücke waren vorher nur aus einer Mathearbeit bekannt, die Ken Thompson gelesen hatte. Der Editor selbst wurde vom Texteditor beeinflusst QED und hat die Redaktion Ex und später vi betroffen. Auch häufig verwendete Unix-Programme wie grep und sed wurden von der Syntax von ed beeinflusst, die später in awk und perl.
Geschichte
Als ed geschrieben wurde, wurde noch viel gearbeitet mit sehr langsamen Verbindungen von 300 Baud und Bildschirmen, bei denen es nur möglich war, unten eine Zeile hinzuzufügen; es war also nicht möglich, den Cursor etwas nach oben zu bewegen, um dort etwas zu ändern, wie es jetzt üblich ist. Da die Verbindungen so langsam und die Ausgabemöglichkeiten so begrenzt waren, hat Ed eine sehr prägnante Art der Berichterstattung. Wenn ein Fehler auftritt oder der Benutzer das Programm beenden möchte, ohne die Änderungen zu speichern, antwortet ed mit ?. Beim Programmstart meldet es nur, wie viele Zeichen die Datei hat, nicht aber wie viele Zeilen sie hat oder wie die Datei heißt. All diese Funktionen haben es mit dem Aufkommen größerer Erinnerungen geschafft und visuelle Editoren ein ziemlich klobiger Editor.
Benutzen
Aus den oben genannten Gründen wird ed noch relativ wenig von Leuten interaktiv verwendet, wenn sie eine Datei bearbeiten möchten. In einigen Notfallsituationen kann ed jedoch der einzige verfügbare Editor sein, z. B. während der Installation von OpenBSD, aber es wird normalerweise gezwungen, ed zu verwenden. Die meisten Nutzer sind bereits in den 80er Jahren auf . umgestiegen vi, emacs oder Sam. Heutzutage gibt es natürlich viel mehr Redakteure.
Was ed nützlich ist, ist die Verwendung in Skripte. Ed bietet die Möglichkeit, eine Datei selbst zu ändern, anstatt sed zu verwenden, wobei die Eingabe- und Ausgabedatei normalerweise nicht gleich sein kann. Die Befehle werden dann an die Standardeingang aus ed und die zu bearbeitende Datei wird als Parameter angegeben.
Dies gilt für die interaktive Nutzung ebenso wie vi, hat auch verschiedene Modi (– eine genauere Beschreibung dazu finden Sie im Artikel auf vi). Es startet im Befehlsmodus, und um Text hinzuzufügen oder einzufügen, muss der Benutzer zuerst den Befehl 'a', 'c' oder 'i' geben. In vi geschieht dies normalerweise durch Navigieren des Cursors an die richtige Stelle; im ed muss die Zeile explizit angegeben werden, wo eingefügt oder hinzugefügt werden soll.
Um den Eingabemodus zu verlassen, wird ein "." in eine leere Zeile geschrieben werden, eine Gewohnheit, die Sie auch im Unix-Programm haben mail zurück schauen.
Beispiel
In diesem Beispiel wird davon ausgegangen, dass ed bereits gestartet wurde. Eine Erklärung folgt nach dem Beispiel. Die Ausgabe, die das Programm ausgibt, ist mit a Kursivschrift Schriftart angegeben.
aed ist der Standard-UNIX-Texteditor. Dies ist die zweite Zeile..2i .1,$led ist der Standard-UNIX-Texteditor.$$Dies ist die zweite Zeile.$3s/Sekunde/Dritte/1,$led ist der Standard-UNIX-Texteditor.$$Dies ist die dritte Zeile.$q?w text61q
Erläuterung
Wir beginnen mit einer neuen Datei, die standardmäßig leer ist. Ein 'a' wird eingegeben, um anzuzeigen, dass wir der Datei Text hinzufügen möchten. Bis dahin sind wir dabei Einfügemodus. Dann können Sie tippen, bis eine Zeile mit nur einem "." eingetragen ist. Dann wird der Befehl 2i angegeben, wodurch Text vor Zeile 2 eingefügt wird. In diesem Beispiel wird nur eine Leerzeile eingefügt. Die eingegebene Zahl entspricht daher der Zeilennummer, in der die Aktion erfolgen muss.
Der folgende Befehl 1,$l fordert ed auf, die Zeilen 1 bis $ oder die letzte Zeile nacheinander auszugeben. Dies geschieht mit einem zusätzlichen Dollarzeichen am Ende, damit eventuelle Leerzeichen am Ende der Zeile zu sehen sind.
Da wir eine Zeile eingefügt haben, ist die zweite Zeile jetzt die dritte, also müssen wir diese Zeile ändern. Es wäre möglich, diese ganze Zeile neu zu schreiben (durch Angabe von 3c), aber es ist bequemer, die falsche zu ersetzen. Wir geben den Befehl an 3s/Sekunde/Dritte/, die 'zweite' durch 'dritte' ersetzt. Wenn nun der gesamte Text erneut gedruckt wird, sehen wir, dass die Zeile jetzt die Wahrheit sagt.
Wir versuchen dann, den Editor zu schließen, aber Ed warnt uns mit einem '?' dass der Text noch nicht gespeichert wurde. Deshalb geben wir den Befehl w text das den Text im Puffer in eine Datei schreibt. Die Ausgabe der Nummer ed entspricht der Anzahl der geschriebenen Zeichen. Der Befehl 'q' beendet die Editiersitzung.
Wissenswertes
der Schöpfer von vi, Bill Joy, sagte einmal, er ziehe es vor, ed statt vi zu verwenden, weil jeder seine eigene Version davon gemacht hat, also wusste er nie, ob vi tat, was er wollte. Ed hingegen fand ihn so abstrus, dass er sich zumindest sicher war, dass ihn niemand angerührt hatte, wenn er einen Editor an einem fremden Computer brauchte.