Available in

(1) (1)/de (1)/fi (1)/hu (1)/ja (1)/pl (1b) (1posix)

TOC

SED(1)                    Dienstprogramme fr Benutzer                   SED(1)



BEZEICHNUNG

       sed  -  (stream editor) ist ein Editor zur nicht-interaktiven Textbear-
       beitung

SYNTAX

       sed [-nV] [--quiet]  [--silent]  [--version]  [-e  Editorkommando]  [-f
       Scriptdatei]   [--expression=   Editorkommando]  [--file=  Scriptdatei]
       [Datei...]

BESCHREIBUNG

       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

OPTIONEN

       -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).

SIEHE AUCH

       das LunetIX Linuxhandbuch

AUTOR

       Unbekannt




LunetIX Linuxhandbuch            1. Juli 1993                           SED(1)

COMMENTS

1
See http://wiki.splitbrain.org/she … r_mark_bom on how to use SED to strip UTF-8 byte order marks.
2005-12-04 00:43:25
Andi
2
Real nice oneliners and longer SED scripts: http://sed.sourceforge.net/grabbag/
2005-12-07 16:16:30
Andi
Add your comment here. Whitespace and linebreaks are preserved. URLs are linked automatically.
CAPTCHA

No HTML allowed. URLs will be linked with nofollow attribute. Whitespace is preserved.