1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196
|
.\"
.\" Copyright 1993 Sebastian Hetze und der/die in der Sektion
.\" AUTOR genannten Autor/Autoren
.\"
.\" Dieser Text steht unter der GNU General Public License.
.\" Er darf kopiert und verndert, korrigiert und verbessert werden.
.\" Die Copyright und Lizenzbestimmung mssen allerdings erhalten
.\" bleiben. Die Hinweise auf das LunetIX Linuxhandbuch, aus dem
.\" dieser Text stammt, drfen nicht entfernt werden.
.\"
.TH SED 1 "1. Juli 1993" LunetIX "Linux Anwenderhandbuch"
.SH BEZEICHNUNG
sed \- (stream editor) ist ein Editor zur nicht-interaktiven Textbearbeitung
.SH SYNTAX
.B sed
.RB [ \-nV ]
.RB [ \--quiet ]
.RB [ \-\-silent ]
.RB [ \-\-version ]
.RB [ \-e
.IR Editorkommando ]
.RB [ \-f
.IR Scriptdatei ]
.RB [ \-\-expression=
.IR Editorkommando ]
.RB [ \-\-file=
.IR Scriptdatei ]
.RI [ Datei ...]
.SH BESCHREIBUNG
.B sed
ist ein Editor zur automatischen Textbearbeitung.
.PP
Die Bearbeitung erfolgt mit Editorkommandos, die dem \fBsed\fP in einer separaten
\fIScriptdatei\fP oder direkt in der Kommandozeile bergeben werden. Um in
der Kommandozeile mehrere \fIEditorkommandos\fP zu bergeben, kann die \fB-e\fP 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 \fB-e\fP Option auch weggelassen werden. Damit die Shell keine
Vernderungen an der Zeichenkette mit dem Editorkommando vornimmt, mu
sie in Hochkommata eingeschlossen werden.
.PP
Eine Scriptdatei kann beliebig viele Editorkommandos enthalten, die
durch Zeilenende oder Semikolon von einander getrennt werden mssen.
.PP
Jedes Kommando besteht aus einem Adreteil und einem Funktionsteil.
Der Adreteil gibt an, welche Zeilen einer Textdatei mit diesem
Kommando bearbeitet werden sollen, und der Funktionsteil beschreibt
die Vernderung, die an den im Adreteil bestimmten Zeilen
vorgenommen werden soll. Wenn kein Adreteil angegeben ist, wird die
Funktion mit jeder Zeile ausgefhrt.
.PP
Die Bearbeitung eines Textes erfolgt, indem die Eingabe zeilenweise in
einen Arbeitsspeicher gelesen wird, und dann die Adreteile aller
Editorkommandos der Reihe nach mit dem Text im Arbeitsspeicher
verglichen werden. Die Funktionen der passenden Kommandos werden in der
Reihenfolge ihres Auftretens ausgefhrt. Normalerweise wird nach der
Bearbeitung aller Kommandos der Inhalt des Arbeitsspeichers auf die
Standardausgabe ausgegeben und danach durch die nchste Eingabezeile
ersetzt. Die automatische Ausgabe des Arbeitsspeichers nach jeder Zeile kann mit der Option
\fB-n\fP unterdrckt werden.
.PP
Zustzlich zu dem Arbeitsspeicher gibt es noch einen Zwischenspeicher
(Puffer), der von verschiedenen Funktionen benutzt werden kann.
.PP
Der Arbeitsspeicher kann auch mehrere Zeilen auf einmal enthalten.
.PP
Im Adreteil knnen die Zeilen entweder durch ihre Zeilennummern, oder
durch regulre Ausdrcke ausgewhlt werden. Alle Funktionen auer den
\fBa\fP, \fBi\fP, \fBq\fP und \fB=\fP akzeptieren einen
Adressbereich, bei dem eine Start- und eine Endadresse durch ein Komma
getrennt angegeben werden. Ein Dollarzeichen steht fr die letzte
Zeile. Wenn eine Endadresse mit einem regulren Ausdruck bezeichnet
ist, wird die erste passende Zeile als Bereichsende eingesetzt.
.PP
Regulre Ausdrcke mssen in einfachen Schrgstrichen (Slashes \fB/\fP) eingeschlossen
werden. \fBsed\fP benutzt die gleichen Routinen zur Auswertung regulrer Ausdrcke wie
\fBemacs\fP oder \fBgrep\fP.
Darberhinaus kann auch die an die \fBed\fP Syntax angelehnte Konstruktion \fB\\\#\fIMuster\fB\#\fR (mit jedem beliebigen Zeichen fr \fB\#\fP) benutzt werden, die wie /\fIMuster\fP/
interpretiert wird.
.PP
Im \fIMuster\fP kann auch ein \fB\\n\fP vorkommen, das auf das Zeilenende pat.
.PP
Der sed kann folgende Funktionen ausfhren:
.TP
\fBa\\\fIText\fR
schreibt den \fIText\fP in
die Standardausgabe, bevor die nchste Eingabezeile gelesen wird
.IP "\fBb \fIMarke\fR"
springt zur der mit der :\fIMarke\fP markierten Zeile im Script (nicht im
Text) und fhrt dort mit dem Programm fort
.TP
\fBc\\\fIText\fR
die im Arbeitsspeicher von \fBsed\fP befindliche Zeilen werden gelscht, und der Text in die Standardausgabe geschrieben; wenn
ein Adressbereich angegeben ist, wird der Text erst am Bereichsende einmal ausgegeben
.IP \fBd\fP
alle aktuell im Arbeitsspeicher von \fBsed\fP 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
.IP \fBD\fP
die erste Zeile im Arbeitsspeicher von \fBsed\fP 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
.IP \fBg\fP
der Arbeitsspeicher von \fBsed\fP wird durch den Inhalt des
Puffers ersetzt; der Inhalt des Arbeitsspeichers geht dabei verloren
.IP \fBG\fP
der Pufferinhalt wird an den Inhalt des Arbeitsspeichers angehngt
.IP \fBh\fP
der Inhalt des Arbeitsspeichers wird in den Puffer geschrieben; der Inhalt
des Puffers geht dabei verloren
.IP \fBH\fP
der Inhalt des Arbeitsspeichers von \fBsed\fP wird an den Puffer angehngt
.TP
\fBi\\\fIText\fR
(insert) der Text wird sofort in die
Standardausgabe geschrieben
.IP \fBl\fP
der Inhalt des Arbeitsspeichers von \fBsed\fP wird ausgegeben; nichtdruckbare Zeichen werden als Oktalzahl
dargestellt
.IP \fBn\fP
der Inhalt des Arbeitsspeichers wird unverndert in die Ausgabe
geschrieben und der Arbeitsspeicher durch die nchste Eingabezeile ersetzt
.IP \fBN\fP
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
.IP \fBp\fP
der Inhalt des Arbeitsspeichers wird in die Standardausgabe geschrieben
.IP \fBP\fP
die erste Zeile im Arbeitsspeicher wird in die Standardausgabe geschrieben
.IP \fBq\fP
beendet \fBsed\fP; es werden keine weiteren Befehle ausgefhrt und keine Zeilen
mehr gelesen
.IP "\fBr \fIDatei\fR"
der Inhalt der Datei wird ausgegeben, bevor die nchste Zeile
gelesen wird
.IP \fBs/\fIAusdruck\fB/\fIErsetzung\fB/\fR[\fIModus\fR]
(substitute) ersetzt den (ersten) auf den regulren
Ausdruck passenden Text durch den Ersetzungstext; es kann auch ein
beliebiges anderes Zeichen anstelle von \fB/\fP benutzt werden; als Modus
knnen ein oder mehrere der folgenden angegeben werden
.RS
.IP \fIn\fP
eine Zahl von 1 bis 512 ersetzt nur das n-te Auftreten des Musters
.IP \fBg\fP
(global) alle auf den Ausdruck passenden Textteile werden ersetzt
.IP \fBp\fP
wenn eine Ersetzung stattgefunden hat, wird der Inhalt des Arbeitsspeichers
von \fBsed\fP in die Standardausgabe geschrieben
.RE
.IP "\fBw \fIDatei\fR"
wenn eine Ersetzung stattgefunden hat, wird der Inhalt des
Arbeitsspeichers in die \fIDatei\fP geschrieben
.IP "\fBt \fIMarke\fR"
verzweigt zur mit der :\fIMarke\fP
versehenen Zeile in der Programmdatei, wenn eine Ersetzung am Inhalt
des Arbeitsspeichers vorgenommen wurde, seit die letzte Eingabezeile
gelesen wurde, oder seit der letzte \fBt\fP Befehl bearbeitet wurde; wenn keine \fIMarke\fP angegeben
ist, wird an das Ende der Programmdatei verzweigt
.IP "\fBw \fIDatei\fR"
schreibt den Inhalt des Arbeisspeichers in die benannte \fIDatei\fP
.IP \fBx\fP
vertauscht den Inhalt des Puffers mit dem Arbeitsspeicher
.IP \fBy/\fIZeichenkette1\fR/\fIZeichenkette2\fR/\fP
vertauscht jedes auftretende Zeichen aus der Zeichenkette1 mit dem
entsprechenden Zeichen der Zeichenkette2; die beiden Zeichenketten mssen gleich lang sein
.IP "\fB! \fIFunktion\fR"
fhrt die Funktion fr alle Zeilen aus, die NICHT in den
Bereich passen
.IP "\fB: \fIMarke\fR"
setzt eine \fIMarke\fP fr den b und den t Befehl
.IP \fB{...}\fP
die von den Klammern eingeschlossenen und durch Zeilenende
oder Semikolon getrennten Funktionen werden als Einheit behandelt
.IP \fB=\fP
gibt die aktuelle Eingabezeilennummer aus
.IP \fB\#\fP
leitet einen Kommentar ein; alle folgenden Zeichen bis zum Zeilenende
werden ignoriert
.SH OPTIONEN
.IP \fB-n\fP
gibt nur die Zeilen aus, die explizit (durch die Anweisung p)
ausgedruckt werden sollen
.IP \fB-V\fP
gibt die Versionsnummer und eine Kurzhilfe aus
.IP "\fB-e \fIZeichenkette\fR"
wendet die Editorbefehle aus \fIZeichenkette\fP auf
den Text an
.IP "\fB-f \fIDatei\fR"
liest die Editorbefehle aus der \fIDatei\fP
.SH SIEHE AUCH
das LunetIX Linuxhandbuch
.SH AUTOR
Unbekannt
|