|
Der Editor ed
ed [-Optionen] [Dateiname]
Der ed ist ein stilles Programm. Nach dem Aufruf tut sich kaum etwas. Er ist so richtig etwas für Risikofreudige, es gibt normalerweise nicht einmal ein Prompt-Zeichen. ed arbeitet immer mit einem Puffer im Hauptspeicher, auf die Platte wird erst durch ein ed-Kommando geschrieben. Ist die im Kommandoaufruf angegebenen Datei vorhanden, wird die Länge der Datei in Bytes ausgegeben. Ist noch keine Datei vorhanden wird ein Fragezeichen und der Dateiname ausgegeben. Wurde der Dateiname weggelassen, tut sich gar nichts. Optionen:
-s | Unterdrückt die Anzeige der gelesenen/geschriebenen Bytes. |
-p | Nach dem p wird ein Promptzeichen angegeben, das der ed dann im Kommandomodus ausgibt (z. B. -p#). |
Der ed kennt zwei Verarbeitungsmodi, den Kommandomodus und den Eingabemodus. Nach dem
Aufruf befindet er sich immer im Kommandomodus und, falls schon eine Text vorhanden
war, am Ende der Datei. Um in den Eingabemodus zu gelangen, muß eines der
folgenden Kommandos gegeben werden:
a |
(append) Anhängen des Textes an die aktuelle Zeile |
i |
(insert) Einfügen des Textes vor der akt. Zeile |
c |
(change) Ersetzen von Text durch die Eingabe |
Die maximale Zeilenlänge beträgt 512 Zeichen. Zur Korrektur
gibt es nur "Backspace" (#, CTRL-H) und "Zeile löschen" (@, CTRL-X). Zurück
in den Kommandomodus gelangt man durch eine Zeile, die als einziges Zeichen
einen Punkt enthält. ed arbeitet zeilenorientiert, wobei ein interner
Zeiger immer auf eine bestimmte Zeile zeigt (zu Beginn auf die letzte Zeile).
Ein ed-Kommando besteht aus Zeilenadresse und Editier-Anweisung, wobei
bei fehlender Adresse die aktuelle Zeile verwendet wird:
[Anfangsadresse [,Endadresse]] Anweisung
Man kann also eine einzige Zeile oder einen Bereich definieren:
Bereich | Beispiel | Bedeutung |
---|
Zeilennr. | 5 | setze Zeiger auf die angegebene Zeile |
Z-Nr , Z-Nr | 1,5 | bearbeite Zeilen 1 bis 5 |
$ | $ | letzte Zeile |
. | . | aktuelle Zeile |
.,$ | .,$ | von der aktuellen Zeile bis Dateiende |
1,. | 1,. | von der ersten Zeile bis zur aktuellen Zeile |
1,$ | 1,$ | gesamter Text |
Z-Nr,$ | 20,$ | bearbeite Zeile 20 bis Ende |
keine Angabe | Return-Taste | nächste Zeile |
Außerdem ist relative Adressierung mit +n oder -n (n = Zahl)
möglich, z. B. adressiert .,.+10 die folgenden 10 Zeilen.
Eine weitere Möglichkeit der Adressierung ist ein regulärer Ausdruck
(dazu unten noch mehr):
/reg.Ausdr./ Sucht ab der aktuellen Zeile (bis $) nach einer Zeile, die den
regulären Ausdruck erfüllt. Wird keine solche Zeile gefunden, wird ab Zeile
1 bis zur aktuellen Zeile gesucht - also gweissermaßen "rundherum".
?reg.Ausdr.? sucht genauso, jedoch von der aktuellen Position
aus rückwärts.
Man kann die regulären Ausdrücke genauso wie die Zeilennummern zum
Adressieren von Textzeilen verwenden. Um beispielsweise die erste Zeile zu löschen,
in der das Wort "Festplatte" enthalten ist, genügt es, den Befehl
/Festplatte/d einzugeben.
|
|
|