(interactive line editor)
ed ist ein interaktiver zeilenorientierter Editor. Mit Hilfe von ed-Skripts (siehe Arbeiten mit ed-Skripts) können Sie bequem mehrere Dateien mit derselben Kommandofolge bearbeiten.
ed verarbeitet die Ausgabe des Kommandos diff -e (siehe diff).
Syntax
ed[ -| -s][ -p zeichenkette][ datei] |
Die Option -s entspricht der alten Option -, die weiterhin unterstützt wird. Die Option -s unterdrückt die folgenden standardmäßigen Ausgaben:
Mit zeichenkette können Sie die Bereitzeichenkette definieren, die ed im Kommandomodus ausgibt. Für zeichenkette können Sie ein oder mehrere Zeichen angeben. -p
Name der Datei, die Sie bearbeiten möchten. ed kopiert die Datei in den internen Puffer und speichert datei als aktuellen Dateinamen. datei nicht angegeben: |
ed-Puffer
Beim Aufruf von ed wird ein Puffer eröffnet. Wenn Sie keine Datei angegeben haben, ist der Puffer leer. Sie füllen ihn während Ihrer Editorsitzung mit Text. Wenn Sie eine Datei angegeben haben, wird eine Kopie dieser Datei in den Puffer eingelesen. Den Text im Puffer bearbeiten Sie während Ihrer Editorsitzung. Bevor Sie den Editor wieder verlassen, müssen Sie entscheiden, ob Sie den neu erstellten oder geänderten Pufferinhalt sichern, d.h. in eine Datei schreiben möchten. Möchten Sie den Pufferinhalt sichern, schreiben Sie den Pufferinhalt mit dem Kommando w[ Möchten Sie den Pufferinhalt nicht sichern, können Sie mit Q oder zweimal q den Editor verlassen, ohne vorher den Pufferinhalt mit w zurückzuschreiben. Nach der ersten Eingabe von q gibt ed als Warnung vor versehentlichem Löschen des Pufferinhalts ein ? aus. Gelöscht wird der Pufferinhalt erst, wenn Sie dann ein zweites Mal q eingeben. Statt des zweiten q können Sie auch Q oder CTRL+D eingeben. |
Arbeitsmodi
Der ed bietet Ihnen zwei Arbeitsmodi: den Kommandomodus und den Eingabemodus. Nach dem Aufruf mit ed[ Den Eingabemodus schalten Sie ein mit einem der Kommandos
(siehe unten, ed-Kommandos). Im Eingabemodus werden alle folgenden Eingabezeichen, auch nicht-druckbare Zeichen (wie z.B. die Tastencodes der Schreibmarkentasten), in die Arbeitskopie im Puffer geschrieben. Im Eingabemodus erkennt ed keine Kommandos. Sie können für den Kommandomodus ein Bereitzeichen definieren (siehe Option -p und ed-Kommando P) und erkennen dann sofort, in welchem Modus Sie gerade arbeiten. Verlassen können Sie den Eingabemodus mit einem Punkt (.) in der ersten Spalte oder mit CTRL+D. CTRL+D bewirkt generell, dass ed alle Eingaben seit der letzten Betätigung der Eingabetaste ignoriert und ein ? als Warnung ausgibt. |
Kommandostruktur
Für ed existiert zu jedem Zeitpunkt eine aktuelle Zeile. Die aktuelle Zeile ist in der Regel die zuletzt durch ein Kommando bearbeitete Zeile. Auf diese aktuelle Zeile beziehen sich die Kommandos immer dann, wenn Sie vor den Kommandos keine anderen Adressen angeben. Die meisten ed-Kommandos haben folgende Struktur:
|
Adressen
Adressen konstruieren Sie folgendermaßen:
|
Kommandos
Die folgende Liste enthält eine systematische Übersicht aller ed-Kommandos, die Sie im Kommandomodus eingeben können. Die daran anschließende ausführliche Kommandobeschreibung ist alphabetisch geordnet. Eingabemodus einschaltena (append) anfügen c (change) löschen und ersetzen i (insert) einfügen Bereitzeichen im Kommandomodus ausgebenP (prompt) Bereitzeichen * ausgeben Kommandos rückgängig machenu (undo) rückgängig machen Kommandos abbrechenCTRL+D abbrechen Fehler erläuternh (help) letzte Fehlermeldung erläutern H (Help) Hilfemodus ein-/ausschalten. Bei jeder Fehleranzeige in Form eines Fragezeichens ? wird bei eingeschaltetem Hilfemodus eine Fehlermeldung ausgegeben (siehe Fehler). Text änderna (append) anfügen c (change) löschen und ersetzen d (delete) löschen i (insert) einfügen Zeilen ausgebenp (print) ausgeben l (list) ausgeben mit nicht-druckbaren Zeichen in Ersatzdarstellung oder als Oktalzahlen adresse adressierte Zeile ausgeben adresse +zahl adressierte Zeile ausgeben n (number) Zeilen nummerieren und ausgeben Eingabetaste Zeile hinter aktueller Zeile ausgeben Zeilennummern ausgebenadresse= Nummer der adressierten Zeile ausgeben n (number) Zeilen nummerieren und ausgeben Zeilenbereiche verschiebent (transfer) kopieren von Zeilen m (move) verschieben von Zeilen Textmuster suchen und ersetzens (substitute) suchen und ersetzen Zeilen verbindenj (join) aufeinanderfolgende Zeilen verbinden Zeilen markierenk (mark) Zeilen markieren Ausgewählte Zeilen mit Kommandos bearbeiteng (global) Kommandoliste global für alle Zeilenausführen, die zu /rA/ passen G (Global) interaktiv Kommandoliste global für alle Zeilen ausführen, die zu /rA/ passen v (vice-versa) wie g, aber für alle Zeilen, die nicht zu /rA/ passen V (Vice-Versa) wie G, aber für alle Zeilen, die nicht zu /rA/ passen Aktuellen Dateinamen ändernf (file-name) aktuellen Dateinamen ändern/ausgeben Shell-Kommandos ausführen! Shell-Kommando aufrufen Dateien in Puffer einlesene (edit) Pufferinhalt löschen und neu einlesen E (Edit) Pufferinhalt ohne Warnung löschen und neu einlesen r (read) Datei in Puffer einlesen Pufferinhalt sichernw (write) Pufferinhalt in Datei schreiben W (write) Pufferinhalt an Datei anfügen Editor verlassenq (quit) ed verlassen Q (Quit) ed verlassen ohne Warnung CTRL+C ed verlassen |
Beschreibung der ed-Kommandos
Die eckigen Klammern [] sind nicht einzugeben! Sie zeigen an, dass die dazwischen eingeschlossene Adressangabe fakultativ ist.
(a - append) liest den eingegebenen text und fügt ihn hinter der mit adresse adressierten Zeile an. Die aktuelle Zeile ist nun entweder die letzte Zeile des eingefügten Textes oder, falls Sie keinen Text eingegeben haben, die adressierte Zeile. Die Adresse 0 ist bei diesem Kommando erlaubt; der Text wird dann vor die erste Zeile des Puffers eingefügt. Über die Datensichtstation können Sie maximal 2048 Zeichen je Zeile einschließlich Neue-Zeile-Zeichen eingeben. adresse nicht angegeben:
(c - change) löscht den angegebenen bereich und ersetzt ihn durch den eingegebenen text. Die aktuelle Zeile ist nun entweder die letzte Zeile des eingegebenen Textes oder, falls Sie keinen Text eingegeben haben, die Zeile vor den gelöschten Zeilen. bereich nicht angegeben:
(d - delete) löscht den angegebenen bereich. Die Zeile hinter der letzten gelöschten Zeile wird zur aktuellen Zeile. Standen die gelöschten Zeilen am Ende des Puffers, wird die neue letzte Zeile die aktuelle Zeile. bereich nicht angegeben:
(e - edit) löscht den gesamten Puffer und liest eine Kopie des Inhalts von datei ein. Ist der Pufferinhalt seit dem letzten Sichern oder Überschreiben verändert und nicht mit w gesichert worden, löscht ed den Pufferinhalt nicht sofort, sondern warnt Sie mit einem ? vor versehentlichem Löschen. Geben Sie daraufhin ein weiteres Mal e ein, wird der Pufferinhalt ohne weitere Warnung überschrieben. Die Anzahl der eingelesenen Bytes wird ausgegeben, wenn Sie ed nicht mit der Option -s aufgerufen haben. Die aktuelle Zeile ist die letzte Zeile des Puffers. Der Name datei wird gespeichert, so dass er später bei den Kommandos e, r und w als aktueller Dateiname verwendet werden kann. Wenn Sie für datei ein Ausrufezeichen ! angeben, wird der Rest der Zeile als Shell-Kommando interpretiert. Das Ergebnis dieses Shell-Kommandos wird in den Puffer eingelesen. Ein mit ! eingeleitetes Shell-Kommando wird nicht als Dateiname gespeichert. datei nicht angegeben:
(E - edit) verhält sich wie edit, außer, dass es den Puffer ohne warnendes ? überschreibt, auch wenn der Inhalt des Puffers verändert und nicht gerettet wurde. datei nicht angegeben:
(f - file) setzt den aktuellen Dateinamen auf datei. Den aktuellen Dateinamen verwenden die Kommandos e, E, r und w. datei nicht angegeben:
(g - global) markiert im ersten Schritt alle Zeilen, die eine Zeichenkette enthalten, die zu rA passt. rA ist ein einfacher regulärer Ausdruck (siehe Tabellen und Verzeichnisse, Reguläre Ausdrücke). Dann wird die nächste markierte Zeile zur aktuellen Zeile und kommandoliste darauf angewandt. Ein einzelnes Kommando oder das erste einer kommandoliste müssen Sie in dieselbe Zeile schreiben wie das Kommmando g. Alle Zeilen einer kommandoliste außer der letzten müssen Sie mit \ und Eingabetaste, die letzte mit Eingabetaste abschließen. Die Kommandos a, i und c mit der dazugehörigen Eingabe text sind zugelassen. Auch Zeilen in text müssen Sie mit \ und Eingabetaste abschließen. Den die Eingabe normalerweise abschließenden Punkt . können Sie in der letzten Zeile der kommandoliste weglassen. Eine leere kommandoliste entspricht dem Kommando p. Die Kommandos g,G,v und V sind in der kommandoliste nicht zugelassen. Nicht mit dem Kommando ! zu kombinieren! bereich nicht angegeben:
(G - global) G ist die interaktive Variante des Kommandos g. Zuerst wird jede Zeile markiert, die zu rA passt. rA ist ein einfacher regulärer Ausdruck (siehe Tabellen und Verzeichnisse, Reguläre Ausdrücke). Die erste der markierten Zeilen wird ausgegeben. Sie wird gleichzeitig zur aktuellen Zeile. Sie haben nun die Möglichkeit, ein Kommando anzugeben, das ausgeführt werden soll. Hierbei darf es sich nicht um a, c, i, g, G, v oder V handeln. Nach der Ausführung dieses Kommandos wird die nächste markierte Zeile ausgegeben, usw. Ein Neue-Zeile-Zeichen hat dieselbe Wirkung wie ein leeres Kommando. Wenn Sie das kommerzielle Und & eingeben, wird das Kommando wiederholt, das seit dem letzten Aufrufen von G als letztes ausgeführt wurde. Mit Kommandos, die unter G aufgerufen werden, können beliebige Zeilen im Puffer adressiert und bearbeitet werden. G können Sie mit CTRL+C abbrechen. bereich nicht angegeben:
(h - help) gibt eine kurze Fehlermeldung aus, die den Grund für das letzte Fragezeichen ? auf dem Bildschirm erklärt. Mögliche Fehlermeldungen siehe Fehler.
(H - help) bewirkt, dass ed in einen Modus übergeht, in dem bei auftretenden Fehlern anstelle von ? erläuternde Fehlermeldungen ausgegeben werden. Auch das zuletzt ausgegebene ? wird, falls vorhanden, erläutert. Diesen Modus können Sie durch ein zweites Aufrufen von H ausschalten.
(i - insert) fügt text vor der mit adresse adressierten Zeile ein. Die aktuelle Zeile ist nun entweder die letzte Zeile des eingefügten Textes oder, falls Sie keinen Text eingegeben haben, die adressierte Zeile. Dieses Kommando unterscheidet sich vom Kommando append nur durch die Positionierung des eingegebenen Textes. Adresse 0 ist nicht zulässig. Über eine Datensichtstation dürfen Sie maximal 2048 Zeichen einschließlich des Neue-Zeile-Zeichens je Zeile eingeben. adresse nicht angegeben:
(j - join) verbindet alle in bereich liegenden Zeilen zu einer einzigen Zeile und löscht dabei die entsprechenden Neue-Zeile-Zeichen. Wenn Sie als Adresse nur eine Zeile angeben, geschieht nichts. Die neue Zeile wird zur aktuellen Zeile. bereich nicht angegeben:
(k - mark) markiert die mit adresse adressierte Zeile mit dem für x angegebenen Buchstaben, wobei x ein Kleinbuchstabe sein muss. Die Markierung wird aber nicht ausgegeben. Adressieren können Sie die markierte Zeile mit Hochkomma x (’x). Die aktuelle Zeile bleibt unverändert. adresse nicht angegeben:
(l - list) gibt im Gegensatz zu p den angegebenen bereich wie folgt aus: Einige nichtdruckbare Zeichen werden Ersatzdarstellung (z.B. Tabulatorzeichen), die übrigen nicht-druckbaren Zeichen werden als Oktalzahlen ausgegeben; überlange Zeilen werden mehrzeilig ausgegeben, am Ende mit dem Zeilenfortsetzungszeichen \ versehen; jedes Zeilenende wird mit $ gekennzeichnet. Das Kommando l können Sie an jedes Kommando anhängen, mit Ausnahme von e, f, r und w. Folgende Ersatzdarstellungen werden verwendet:
*) bereich nicht angegeben:
(m - move) verschiebt den bereich hinter die mit adresse adressierte Zeile. Die letzte der verschobenen Zeilen wird die aktuelle Zeile. Wenn Sie für adresse den Wert 0 angeben, wird bereich ganz an den Anfang der Datei gesetzt. Liegt adresse innerhalb von bereich, gibt ed eine Fehlermeldung aus. bereich nicht angegeben:
(n - number) gibt die mit bereich adressierten Zeilen aus, wobei an den Anfang jeder Zeile die Zeilennummer und ein Tabulatorzeichen gesetzt werden. Die zuletzt ausgegebene Zeile wird zur neuen Zeile. Das Kommando n können Sie an jedes Kommando anhängen, mit Ausnahme von e, f, r und w. bereich nicht angegeben:
(p - print) gibt die mit bereich adressierten Zeilen aus. Nicht-druckbare Zeichen werden unverändert ausgegeben. Überlange Zeilen laufen ohne besondere Kennzeichnung auf der nächsten Zeile weiter, d.h. man kann sie nicht als solche erkennen. Die zuletzt ausgegebene Zeile wird zur aktuellen Zeile. Das Kommando p können Sie an jedes Kommando anhängen, mit Ausnahme von e, f, r und w. Mit dp wird also die aktuelle Zeile gelöscht und die neue aktuelle Zeile ausgegeben. bereich nicht angegeben:
(P - prompt) bewirkt, dass ed im Kommandomodus als Bereitzeichen den Stern * oder die Bereitzeichenkette (siehe Option -p) ausgibt. Diesen Modus können Sie durch einen zweiten Aufruf von P wieder ausschalten. Standardmäßig ist dieser Modus ausgeschaltet.
(q - quit) beendet den ed. Ist der Pufferinhalt seit dem letzten Sichern oder Überschreiben verändert und nicht mit w gesichert worden, gibt ed als Warnung vor versehentlichem Löschen ein ? aus und wartet auf weitere Eingabe. Wenn Sie dann CTRL+D, Q oder zum zweitenmal q eingeben, beenden Sie den ed ohne weitere Warnung und ohne den Pufferinhalt gesichert zu haben. Achtung! Wenn Sie nach dem ersten q noch Aktionen durchführen, die den Pufferinhalt nicht verändern, beenden Sie mit dem zweiten q auch den ed ohne weitere Warnung und ohne Sicherung des Pufferinhalts.
(Q - quit) beendet den ed sofort ohne Warnung, auch wenn Sie den Pufferinhalt seit dem letzten Sichern oder Überschreiben verändert und nicht mit w gesichert haben.
(r - read) liest datei und fügt ihren Inhalt hinter der mit adresse adressierten Zeile ein.Die Adresse 0 ist für dieses Kommando erlaubt. Wenn Sie für datei ein Ausrufezeichen ! angeben, dann wird der Rest der Zeile als Shell-Kommando interpretiert, ausgeführt und die Ausgabe davon eingelesen. Ein solches Kommando wird nicht als aktueller Dateiname gespeichert. adresse nicht angegeben: datei nicht angegeben:
(s - substitute) durchsucht jede Zeile in bereich nach Zeichenketten, die zu rA passen. rA ist ein einfacher internationalisierter regulärer Ausdruck (siehe Tabellen und Verzeichnisse, Reguläre Ausdrücke). In jeder so gefundenen Zeile wird die erste zu rA passende Zeichenkette durch Ersetzungszeichenkette ersetzt. Ist der Schalter g gesetzt, werden alle zu rA passenden Zeichenketten durch Ersetzungszeichenkette ersetzt. Als Trennzeichen zwischen dem Kommando s, dem regulären Ausdruck rA und Ersetzungszeichenkette können Sie nicht nur den Schrägstrich / verwenden, sondern auch jedes andere beliebige Zeichen außer: Leerzeichen und Neue-Zeile-Zeichen. Das Zeichen wird dadurch als Trennzeichen definiert, dass es unmittelbar auf s folgt. Zur aktuellen Zeile wird die Zeile, auf der die letzte Ersetzung stattgefunden hat.
Ersetzt das count-te Auftreten des regulären Ausdrucks in einer Zeile.
Es wird nicht nur das erste Auftreten des rA, sondern es werden global alle alle nicht-überlappenden Vorkommen des rA ersetzt. Werden sowohl g als auch count angegeben, ist das Ergebnis undefiniert.
Die letzte Zeile, in der eine Ersetzung stattgefunden hat, wird auf die Standardausgabe im Format des ed-Kommandos l (list) geschrieben.
Die letzte Zeile, in der eine Ersetzung stattgefunden hat, wird auf die Standardausgabe im Format des ed-Kommandos n (number) geschrieben.
Die letzte Zeile, in der eine Ersetzung stattgefunden hat, wird auf die Standardausgabe im Format des ed-Kommandos p (print) geschrieben. Sonderzeichen in der Ersetzungszeichenkette Zeichen und Bedeutung
Die Sonderbedeutung dieser Zeichen können Sie aufheben, indem Sie Ihnen jeweils einen Gegenschrägstrich \ voranstellen. Zeile trennen in Ersetzungszeichenkette Wenn Sie in Ersetzungszeichenkette ein Neue-Zeile-Zeichen haben möchten, müssen Sie es mit \ davor entwerten. Sie geben also \ vor der Eingabetaste ein. Ein solches Ersetzungskommando darf nicht Teil von kommandoliste der Kommandos g und v sein. bereich nicht angegeben:
kopiert bereich hinter die angegebene Zeile a. Als Adresse für a ist 0 zugelassen. Zur aktuellen Zeile wird die letzte der kopierten Zeilen. bereich nicht angegeben:
(u - undo) macht das letzte Kommando rückgängig, mit dem der Inhalt des Puffers geändert wurde. Rückgängig machen können Sie die Kommandos a, c, d, g, i, j, m, r, s, t, v, G und V.
(v - vice-versa) bearbeitet alle Zeilen mit kommandoliste, die keine Zeichenkette enthalten, die zu rA passt. rA ist ein einfacher regulärer Ausdruck (siehe Tabellen und Verzeichnisse, Reguläre Ausdrücke). Bis auf diese Zeilenauswahl funktioniert v wie das Kommando g. Nicht mit dem Kommando ! zu kombinieren! bereich nicht angegeben:
(V - vice-versa) ist die interaktive Variante des Kommandos v. Sie können mit V alle Zeilen bearbeiten, die keine Zeichenkette enthalten, die zu rA passt. rA ist ein einfacher internationalisierter regulärer Ausdruck (siehe Tabellen und Verzeichnisse, Reguläre Ausdrücke). Bis auf diese Zeilenauswahl funktioniert V wie das Kommando G. bereich nicht angegeben:
(w - write) schreibt bereich in die datei. Der aktuelle Dateiname ändert sich nicht, falls er bereits gesetzt ist. Ist er nicht gesetzt, wird datei zum neuen aktuellen Dateinamen. Der alte Inhalt von datei wird dabei überschrieben. Existiert datei noch nicht, so wird sie angelegt. Die aktuelle Zeile bleibt unverändert. Nach erfolgreichem Schreiben wird die Anzahl der geschriebenen Bytes ausgegeben, vorausgesetzt, Sie haben den ed nicht mit der Option -s aufgerufen. Wenn Sie für datei statt eines Dateinamens das Ausrufezeichen ! angeben, wird der Rest der Zeile als Shell-Kommando interpretiert und ausgeführt. bereich ist dann die Standard-Eingabe für das Shell-Kommando. Ein solches Kommando wird nicht als aktueller Dateiname gespeichert. bereich nicht angegeben: datei = aktueller Dateiname
(W - write) fügt bereich an die Datei datei an, sonst verhält es sich wie das
Die mit adresse adressierte Zeile wird ausgegeben.
Dieses Kommando gibt die Zeile aus, die zahl Zeilen hinter der mit adresse adressierten Zeile liegt. adresse nicht angegeben:
Die Nummer von adresse wird ausgegeben. Die aktuelle Zeile wird dadurch nicht verändert. adresse nicht angegeben:
Der Rest der Zeile hinter dem ! wird als Shell-Kommando interpretiert und ausgeführt. Ist in kommando ein nicht entwertetes Prozent-Zeichen % enthalten, wird es durch den gespeicherten Dateinamen ersetzt. !! wiederholt das letzte kommando. In beiden Fällen wird die expandierte Kommandozeile ausgegeben. Nach Beendigung des kommandos ist ed wieder aktiv. Die aktuelle Zeile wird nicht verändert. Nicht zu kombinieren mit den Kommandos g und v! Eingabetaste Geben Sie im Kommandomodus die Eingabetaste alleine ein, wird die Zeile hinter der aktuellen Zeile ausgegeben. Dies ist mit der Eingabe .+1p gleichbedeutend. Sie können so im Puffer von einer Zeile zur nächsten springen. Die Eingabetaste müssen Sie drücken, um im Kommandomodus die Eingabe eines Kommandos oder um im Eingabemodus die Eingabe einer Textzeile abzuschließen. CTRL+C oder @@c Mit CTRL+C oder @@c können Sie laufende ed-Kommados unterbrechen oder die Eingabe einer Zeile abbrechen. ed meldet sich anschließend mit einem ? zurück. CTRL+D oder @@d Die Wirkung von CTRL+D oder @@d ist dieselbe wie beim Kommando q. Steht das Zeichen, das einen regulären Ausdruck oder eine Ersetzungszeichenkette abschließt (z.B. ein /), unmittelbar vor einem Neue-Zeile-Zeichen, dann können Sie dieses Zeichen weglassen. Die adressierte Zeile wird dann ausgegeben. Die folgenden Beispielpaare haben die gleiche Funktion:
|
Arbeiten mit ed-Skripts
ed liest Kommandos und einzufügenden Text von der Standard-Eingabe. Deshalb können Sie die Eingabe auch umlenken, so dass ed aus einer Datei liest. Mit
wird die Datei datei editiert und mit den ed-Kommandos bearbeitet, die in der Datei ed_skriptdatei stehen. Die Option -s unterdrückt die standardmäßige Ausgabe der Meldungstexte auf den Bildschirm. Das Arbeiten mit ed-Skripts hat den Vorteil, dass Sie bestimmte Kommandofolgen jederzeit reproduzieren und beliebig oft verwenden können. Außerdem können Sie so diesen Vorgang auch als Hintergrundprozess ablaufen lassen und selbst ungestört am Bildschirm weiterarbeiten:
Arbeiten Sie mit einem fehlerhaften ed-Skript, dann beendet ed beim ersten Fehler. |
Endestatus
0 | bei Erfolg |
>0 | bei fehlerhaftem Aufruf des ed oder bei Abbruch einer Prozedur aufgrund fehlerhafter ed-Kommandos. |
Fehler
Wenn Sie beim Aufruf von ed zwischen Option -p und zeichenkette kein Leerzeichen eingebenoder zeichenkette vergessen:
Wenn Ihnen bei ed-Kommandos Fehler unterlaufen:
Syntaxfehler im Kommando
Datei datei ist nicht vorhanden oder kann nicht gelesen werden. Nähere Informationen bekommen Sie mit den Kommandos h und H. Die häufigsten Fehlermeldungen sind:
|
Datei
ed.hup In dieser Datei werden die Daten gesichert, wenn ed das Signal SIGHUP empfängt (siehe kill()). /var/tmp Wenn dieses Dateiverzeichnis existiert, dann wird es als Dateiverzeichnis für die Speicherungder Temporärdatei verwendet. /tmp Wenn die Variable TMPDIR nicht auf ein existierendes Dateiverzeichnis gesetzt ist und das Verzeichnis /var/tmp nicht existiert, dann wird /tmp zur Speicherung der Temporärdatei verwendet. |
Variable
TMPDIR Wenn diese Variable gesetzt und nicht leer ist, dann wird ihr Wert anstelle von /var/tmp als Dateiverzeichnis für die Speicherung der Temporärdatei verwendet. HOME Legt den Pfadname für das HOME-Dateiverzeichnis des Benutzers fest. |
Internationale Umgebung
Die folgenden Umgebungsvariablen beeinflussen die Ausführung des Kommandos ed: LANG Gibt einen Standardwert für die Variablen für die internationale Umgebung an, die nicht gesetzt oder Null sind. Ist LANG nicht gesetzt oder Null, wird der entsprechende Standardwert der internationalen Umgebung verwendet. Enthält eine der Internationalisierungsvariablen eine ungültige Einstellung, verhält sich das Kommando so, als sei keine der Variablen definiert worden. LC_ALL Ist diese Variable auf einen Wert gesetzt, d. h. ist sie nicht leer, überschreibt dieser Wert die Werte aller übrigen Internationalisierungsvariablen. LC_COLLATE Legt in geklammerten regulären Ausdrücken die Bedeutung von Zeichenbereichen, Äquivalenzklassen und Zeicheneinheiten fest. LC_CTYPE Legt die internationale Umgebung für die Interpretation der Byte-Folgen eines Datentexts als Zeichen fest (z.B. Singlebytezeichen im Unterschied zu Mehrbytezeichen in Argumenten und Eingabedateien) sowie die Einteilung der Zeichen in Groß- und Kleinbuchstaben und deren Übereinstimmung. LC_MESSAGES Legt die internationale Umgebung für Format und Inhalt der Diagnosemeldungen fest, die in die Standardfehlerausgabe geschrieben werden. NLSPATH Legt den Pfad der Meldungsdateien für LC_MESSAGES fest. |
Beispiel 1
Beispiel für ein ed-Skript: In einer Datei sollen die ersten drei Zeilen durch eine Zeile mit dem Text „Adressen" und überall soll das Wort „Stachus“ durch „Karlsplatz“ ersetzt werden. Inhalt der Datei edskript: 1,3c Adressen . 1,$s/Stachus/Karlsplatz/g w Bearbeitung einer Datei mit den Kommandos aus edskript:
Wenn ed seine Kommandos nicht von der Tastatur, sondern aus einer Datei liest, wird der Editor nach dem ersten für ed unverständlichen Kommando verlassen. |
Beispiel 2
Beispiel für ein here-skript: In beliebigen Dateien, die beim Aufruf der Prozedur xy als Argumente übergeben werden, sollen die ersten drei Zeilen durch eine Zeile mit dem Text „Adressen" und überall soll das Wort „Stachus" durch „Karlsplatz" ersetzt werden. Inhalt der Prozedurdatei xy: for i in $* do ed $i << scrend 1,3c Adressen . 1,\$s/Stachus/Karlsplatz/g w scrend done Bearbeitung der Dateien text1, text2 und text3 mit der Prozedur xy:
Die Zeichenkette << scrend hinter dem ed-Aufruf bewirkt, dass die Shell den Text bis zur Zeichenkette scrend an ed als Eingabe übergibt. Die zweite Zeichenkette scrend muss ohne führende Leerzeichen als einziges Wort in einer Zeile stehen. Bei der Adressangabe 1,$ muss die Sonderbedeutung von $ mit \ aufgehoben werden, da die Shell sonst das nachfolgende s als Name einer Shell-Variablen interpretieren würde. |
Siehe auch
ex, grep, sed, sh, stty, umask, vi Tabellen und Verzeichnisse, Reguläre Ausdrücke |