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 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276
|
.\"
.\" 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 Linuxhandbuch" "Dienstprogramme fr Benutzer"
.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
.B sed
in einer separaten
.I Scriptdatei
oder direkt in der Kommandozeile bergeben werden. Um in der
Kommandozeile mehrere
.I Editorkommandos
zu bergeben, kann die
.B \-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
.B \-e
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
.B \-n
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
.BR a ", " i ", " q " und " =
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
.BR / )
eingeschlossen werden.
.B sed
benutzt die gleichen Routinen zur Auswertung regulrer Ausdrcke wie
.BR emacs " oder " grep .
Darberhinaus kann auch die an die
.B sed
Syntax angelehnte Konstruktion
\fB\\#\fIMuster\fB\\#\fR
(mit jedem beliebigen Zeichen fr \fB\\#\fP) benutzt werden, die wie
.BI / Muster /
interpretiert wird.
.PP
Im
.I Muster
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
.I Text
in die Standardausgabe, bevor die nchste Eingabezeile gelesen wird
.TP
.BI b " Marke"
springt zur der mit der
.RI : " Marke"
markierten Zeile im Script (nicht im Text) und fhrt dort mit dem
Programm fort
.TP
\fBc\\\fIText\fR
die im Arbeitsspeicher von
.B sed
befindliche Zeilen werden gelscht, und der Text in die Standardausgabe
geschrieben; wenn ein Adressbereich angegeben ist, wird der Text erst am
Bereichsende einmal ausgegeben
.TP
.B d
alle aktuell im Arbeitsspeicher von
.B 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
.TP
.B D
die erste Zeile im Arbeitsspeicher von
.B 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
.TP
.B g
der Arbeitsspeicher von
.B sed
wird durch den Inhalt des Puffers ersetzt; der Inhalt des
Arbeitsspeichers geht dabei verloren
.TP
.B G
der Pufferinhalt wird an den Inhalt des Arbeitsspeichers angehngt
.TP
.B h
der Inhalt des Arbeitsspeichers wird in den Puffer geschrieben; der Inhalt
des Puffers geht dabei verloren
.TP
.B H
der Inhalt des Arbeitsspeichers von
.B sed
wird an den Puffer angehngt
.TP
\fBi\\\fIText\fR
(insert) der Text wird sofort in die Standardausgabe geschrieben
.TP
.B l
der Inhalt des Arbeitsspeichers von
.B sed
wird ausgegeben; nichtdruckbare Zeichen werden als Oktalzahl dargestellt
.TP
.B n
der Inhalt des Arbeitsspeichers wird unverndert in die Ausgabe
geschrieben und der Arbeitsspeicher durch die nchste Eingabezeile ersetzt
.TP
.B 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
.TP
.B p
der Inhalt des Arbeitsspeichers wird in die Standardausgabe geschrieben
.TP
.B P
die erste Zeile im Arbeitsspeicher wird in die Standardausgabe geschrieben
.TP
.B q
beendet
.BR sed ;
es werden keine weiteren Befehle ausgefhrt und keine Zeilen mehr gelesen
.TP
.BI r " Datei"
der Inhalt der Datei wird ausgegeben, bevor die nchste Zeile gelesen wird
.TP
\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
.B /
benutzt werden; als Modus knnen ein oder mehrere der folgenden
angegeben werden
.RS
.TP
.I n
eine Zahl von 1 bis 512 ersetzt nur das n-te Auftreten des Musters
.TP
.B g
(global) alle auf den Ausdruck passenden Textteile werden ersetzt
.TP
.B p
wenn eine Ersetzung stattgefunden hat, wird der Inhalt des Arbeitsspeichers
von
.B sed
in die Standardausgabe geschrieben
.RE
.TP
.BI w " Datei"
wenn eine Ersetzung stattgefunden hat, wird der Inhalt des Arbeitsspeichers
in die
.I Datei
geschrieben
.TP
.BI t " Marke"
verzweigt zur mit der
.RI : Marke
versehenen Zeile in der Programmdatei, wenn eine Ersetzung am Inhalt
des Arbeitsspeichers vorgenommen wurde, seit die letzte Eingabezeile
gelesen wurde, oder seit der letzte
.B t
Befehl bearbeitet wurde; wenn keine
.I Marke
angegeben ist, wird an das Ende der Programmdatei verzweigt
.TP
.BI w " Datei"
schreibt den Inhalt des Arbeisspeichers in die benannte
.I Datei
.TP
.B x
vertauscht den Inhalt des Puffers mit dem Arbeitsspeicher
.TP
.BI y/ Zeichenkette1 / Zeichenkette2 /
vertauscht jedes auftretende Zeichen aus der Zeichenkette1 mit dem
entsprechenden Zeichen der Zeichenkette2; die beiden Zeichenketten
mssen gleich lang sein
.TP
.BI ! " Funktion"
fhrt die Funktion fr alle Zeilen aus, die NICHT in den Bereich passen
.TP
.BI : "Marke"
setzt eine
.I Marke
fr den b und den t Befehl
.TP
.B {...}
die von den Klammern eingeschlossenen und durch Zeilenende
oder Semikolon getrennten Funktionen werden als Einheit behandelt
.TP
.B =
gibt die aktuelle Eingabezeilennummer aus
.TP
.B \\\\#
leitet einen Kommentar ein; alle folgenden Zeichen bis zum Zeilenende
werden ignoriert
.SH OPTIONEN
.TP
.B \-n
gibt nur die Zeilen aus, die explizit (durch die Anweisung p)
ausgedruckt werden sollen
.TP
.B \-V
gibt die Versionsnummer und eine Kurzhilfe aus
.TP
.BI \-e "Zeichenkette"
wendet die Editorbefehle aus
.I Zeichenkette
auf den Text an
.TP
.BI \-f " Datei"
liest die Editorbefehle aus der
.I Datei
.SH SIEHE AUCH
das LunetIX Linuxhandbuch
.SH AUTOR
Unbekannt
|