SED(1) Dienstprogramme fr Benutzer SED(1)
sed - (stream editor) ist ein Editor zur nicht-interaktiven Textbear-
beitung
sed [-nV] [--quiet] [--silent] [--version] [-e Editorkommando] [-f
Scriptdatei] [--expression= Editorkommando] [--file= Scriptdatei]
[Datei...]
sed ist ein Editor zur automatischen Textbearbeitung.
Die Bearbeitung erfolgt mit Editorkommandos, die dem sed in einer sepa-
raten Scriptdatei oder direkt in der Kommandozeile bergeben werden. Um
in der Kommandozeile mehrere Editorkommandos zu bergeben, kann die -e
Option mehrfach verwendet werden. Die Editorkommandos knnen auch durch
ein Semikolon getrennt werden. Wird nur ein einziges Editorkommando in
der Kommandozeile bergeben, kann die Kennzeichnung mit der -e Option
auch weggelassen werden. Damit die Shell keine Vernderungen an der
Zeichenkette mit dem Editorkommando vornimmt, muss sie in Hochkommata
eingeschlossen werden.
Eine Scriptdatei kann beliebig viele Editorkommandos enthalten, die
durch Zeilenende oder Semikolon von einander getrennt werden mssen.
Jedes Kommando besteht aus einem Adressteil und einem Funktionsteil.
Der Adressteil gibt an, welche Zeilen einer Textdatei mit diesem Kom-
mando bearbeitet werden sollen, und der Funktionsteil beschreibt die
Vernderung, die an den im Adressteil bestimmten Zeilen vorgenommen wer-
den soll. Wenn kein Adressteil angegeben ist, wird die Funktion mit
jeder Zeile ausgefhrt.
Die Bearbeitung eines Textes erfolgt, indem die Eingabe zeilenweise in
einen Arbeitsspeicher gelesen wird, und dann die Adressteile aller Edi-
torkommandos der Reihe nach mit dem Text im Arbeitsspeicher verglichen
werden. Die Funktionen der passenden Kommandos werden in der Reihen-
folge ihres Auftretens ausgefhrt. Normalerweise wird nach der Bear-
beitung aller Kommandos der Inhalt des Arbeitsspeichers auf die Stan-
dardausgabe ausgegeben und danach durch die nchste Eingabezeile
ersetzt. Die automatische Ausgabe des Arbeitsspeichers nach jeder
Zeile kann mit der Option -n unterdrckt werden.
Zustzlich zu dem Arbeitsspeicher gibt es noch einen Zwischenspeicher
(Puffer), der von verschiedenen Funktionen benutzt werden kann.
Der Arbeitsspeicher kann auch mehrere Zeilen auf einmal enthalten.
Im Adressteil knnen die Zeilen entweder durch ihre Zeilennummern, oder
durch regulre Ausdrcke ausgewhlt werden. Alle Funktionen auer den a,
i, q und = akzeptieren einen Adressbereich, bei dem eine Start- und
eine Endadresse durch ein Komma getrennt angegeben werden. Ein Dol-
larzeichen steht fr die letzte Zeile. Wenn eine Endadresse mit einem
regulren Ausdruck bezeichnet ist, wird die erste passende Zeile als
Bereichsende eingesetzt.
Regulre Ausdrcke mssen in einfachen Schrgstrichen (Slashes /)
eingeschlossen werden. sed benutzt die gleichen Routinen zur Auswer-
tung regulrer Ausdrcke wie emacs oder grep. Darber hinaus kann auch
die an die sed Syntax angelehnte Konstruktion \#Muster\# (mit jedem
beliebigen Zeichen fr \#) benutzt werden, die wie /Muster/ inter-
pretiert wird.
Im Muster kann auch ein \n vorkommen, das auf das Zeilenende passt.
Der sed kann folgende Funktionen ausfhren:
a\Text schreibt den Text in die Standardausgabe, bevor die nchste
Eingabezeile gelesen wird
b Marke
springt zur der mit der : Marke markierten Zeile im Script
(nicht im Text) und fhrt dort mit dem Programm fort
c\Text die im Arbeitsspeicher von sed befindliche Zeilen werden
gelscht, und der Text in die Standardausgabe geschrieben; wenn
ein Adressbereich angegeben ist, wird der Text erst am Bereich-
sende einmal ausgegeben
d alle aktuell im Arbeitsspeicher von sed befindlichen Zeichen
werden gelscht und die nchste Eingabezeile gelesen; die auf
diesen Befehl folgenden Befehle werden nicht mehr bearbeitet,
auch wenn die Zeilen im Arbeitsspeicher im passenden Bereich
liegen
D die erste Zeile im Arbeitsspeicher von sed wird gelscht und die
nchste Zeile wird gelesen; die auf diesen Befehl folgenden
Befehle werden nicht mehr bearbeitet, auch wenn die Zeilen im
Arbeitsspeicher im passenden Bereich liegen
g der Arbeitsspeicher von sed wird durch den Inhalt des Puffers
ersetzt; der Inhalt des Arbeitsspeichers geht dabei verloren
G der Pufferinhalt wird an den Inhalt des Arbeitsspeichers
angehngt
h der Inhalt des Arbeitsspeichers wird in den Puffer geschrieben;
der Inhalt des Puffers geht dabei verloren
H der Inhalt des Arbeitsspeichers von sed wird an den Puffer
angehngt
i\Text (insert) der Text wird sofort in die Standardausgabe geschrieben
l der Inhalt des Arbeitsspeichers von sed wird ausgegeben; nicht-
druckbare Zeichen werden als Oktalzahl dargestellt
n der Inhalt des Arbeitsspeichers wird unverndert in die Ausgabe
geschrieben und der Arbeitsspeicher durch die nchste
Eingabezeile ersetzt
N die nchste Eingabezeile wird an den Arbeitsspeicher angehngt;
das Zeilenende wird mit in den Arbeitsspeicher geschrieben; die
Zeilennummer des aktuellen Bereiches erhht sich um eins
p der Inhalt des Arbeitsspeichers wird in die Standardausgabe
geschrieben
P die erste Zeile im Arbeitsspeicher wird in die Standardausgabe
geschrieben
q beendet sed; es werden keine weiteren Befehle ausgefhrt und
keine Zeilen mehr gelesen
r Datei
der Inhalt der Datei wird ausgegeben, bevor die nchste Zeile
gelesen wird
s/Ausdruck/Ersetzung/[Modus]
(substitute) ersetzt den (ersten) auf den regulren Ausdruck
passenden Text durch den Ersetzungstext; es kann auch ein
beliebiges anderes Zeichen anstelle von / benutzt werden; als
Modus knnen ein oder mehrere der folgenden angegeben werden
n eine Zahl von 1 bis 512 ersetzt nur das n-te Auftreten
des Musters
g (global) alle auf den Ausdruck passenden Textteile werden
ersetzt
p wenn eine Ersetzung stattgefunden hat, wird der Inhalt
des Arbeitsspeichers von sed in die Standardausgabe
geschrieben
w Datei
wenn eine Ersetzung stattgefunden hat, wird der Inhalt des
Arbeitsspeichers in die Datei geschrieben
t Marke
verzweigt zur mit der :Marke versehenen Zeile in der Programm-
datei, wenn eine Ersetzung am Inhalt des Arbeitsspeichers
vorgenommen wurde, seit die letzte Eingabezeile gelesen wurde,
oder seit der letzte t Befehl bearbeitet wurde; wenn keine Marke
angegeben ist, wird an das Ende der Programmdatei verzweigt
w Datei
schreibt den Inhalt des Arbeitsspeichers in die benannte Datei
x vertauscht den Inhalt des Puffers mit dem Arbeitsspeicher
y/Zeichenkette1/Zeichenkette2/
vertauscht jedes auftretende Zeichen aus der Zeichenkette1 mit
dem entsprechenden Zeichen der Zeichenkette2; die beiden
Zeichenketten mssen gleich lang sein
! Funktion
fhrt die Funktion fr alle Zeilen aus, die NICHT in den Bereich
passen
:Marke setzt eine Marke fr den b und den t Befehl
{...} die von den Klammern eingeschlossenen und durch Zeilenende oder
Semikolon getrennten Funktionen werden als Einheit behandelt
= gibt die aktuelle Eingabezeilennummer aus
\# leitet einen Kommentar ein; alle folgenden Zeichen bis zum
Zeilenende werden ignoriert
-n, --quiet, --silent
gibt nur die Zeilen aus, die explizit (durch die Anweisung p)
ausgedruckt werden sollen
-V gibt die Versionsnummer und eine Kurzhilfe aus
-e Zeichenkette, --expression=Zeichenkette
wendet die Editorbefehle aus Zeichenkette auf den Text an
-f Datei, --file=Datei
liest die Editorbefehle aus der Datei
-i[SUFFIX], --in-place[=SUFFIX]
schreibt nderungen unmittelbar in die bearbeitete Datei zurck
(und legt, falls angegeben, eine Sicherungskopie der
ursprnglichen Datei mit der Endung .SUFFIX an).
das LunetIX Linuxhandbuch
Unbekannt
LunetIX Linuxhandbuch 1. Juli 1993 SED(1)