Frage zu "sed"

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
thilo
Beiträge: 241
Registriert: 12.12.2002 22:48:44

Frage zu "sed"

Beitrag von thilo » 24.07.2003 08:51:40

Hallo!

Habe mir folgende Datei "beispiel" angelegt:

Code: Alles auswählen

Roland
Dirk
Alexander
Mit dem Befehl "sed" kann ich nun z.B. nach der Zeile "Dirk" suchen und sie durch "Joerg" ersetzen.

Dies mache ich so:

Code: Alles auswählen

sed -e 's/^Dirk$/Joerg/' > beispiel_neu
Das klappt auch problemlos - die neue Datei ("beispiel_neu") sieht so aus:

Code: Alles auswählen

Roland
Joerg
Alexander
Wie kann ich nun erreichen, dass in der Datei "beispiel" nach der Zeile mit dem Wort "Dirk" gesucht wird und hinter dieser Zeile eine Zeile mit dem Wort "Sabine" eingefügt wird?


Das Ergebnis sollte dann also so aussehen:

Code: Alles auswählen

Roland
Dirk
Sabine
Alexander
Vielen Dank für Eure Mühe!


Gruß,

Thilo

Benutzeravatar
hupfdule
Beiträge: 1864
Registriert: 09.12.2002 15:04:37
Wohnort: Berlin
Kontaktdaten:

Beitrag von hupfdule » 24.07.2003 10:14:37

sed -e 's/^Dirk$/Dirk\nSabine/' beispiel > beispiel_neu

Benutzeravatar
lisan
Beiträge: 658
Registriert: 22.02.2003 19:05:04
Wohnort: Berlin
Kontaktdaten:

Beitrag von lisan » 24.07.2003 10:37:59

Kann sein, dass das mit dem sed so nicht funktioniert, haengt glaub ich auch vonner shell ab ?

kannst das auch mit awk loesen

Code: Alles auswählen

# awk script
{ if ( $1 == "Dirk" ) {
    print $1;
    print "Sabine"
  }
  else {
    print $1
  }
}
bye

Olaf Dietsche
Beiträge: 520
Registriert: 12.06.2003 23:18:50
Wohnort: Siegburg

Beitrag von Olaf Dietsche » 24.07.2003 13:18:07

Code: Alles auswählen

man sed
verrät dir, wie es geht ;-).
Versuch' mal folgendes

Code: Alles auswählen

sed -e '/Dirk/a\
Sabine' beispiel

Antworten