![](https://seccdn.libravatar.org/avatar/4bad96c02dc7cb827e26ed5afa1c309d.jpg?s=120&d=mm&r=g)
Hi On Wednesday 25 August 2004 18:26, David Haller wrote:
Ohne Leerzeichen ginge es z.B. auch so. (auch wenn es eine nützliche Angewohnheit ist immer die Hochkommas zu setzen zu machen) sed -e /AB HIER/a\ Hier_die_neue_Zeile < datei > ausgabedatei
Das wird nicht funktionieren.
Denn den einzelen Backslash frisst die shell auf.
Das Leerzeichen in der regex AB HIER ist der Fehler. Ich schrieb ja auch ohne Leerzeichen. Genauergenommen ohne escapete Leerzeichen (übles germlish gebe ich zu). Der Beispieltext ist einfach falsch :-) Gerade nochmal ausprobiert mit bash: Skript namens Zeilenfortsetzung <===================== #!/bin/bash sed /zweite/a\ Einsubtext\ \ mit\ Fortsetzung =====================> $> echo -e "erste Zeile\nzweite Zeile\ndritte Zeile" |./Zeilenfortsetzung erste Zeile zweite Zeile Einsubtext mit Fortsetzung dritte Zeile \<newline> wird von der shell erkannt und nicht an sed weitergeleitet. Aber die beiden Zeilen werden dann von der bash an sed auch ohne backslash und eben auch ohne <newline> übergeben. Damit ist doch alles wieder in Ordnung.
muessen die '\' eingegeben werden. Wie sollte 'sed' denn sonst unterscheiden, ob das 'H' des 'Hier' und das 'h' des 'hier' ein sed-Befehl ist? Sed bekommt von den \ am Zeilenende doch sowieso nichts zu sehen. Du wirst also 'Extra characters after command' oder ein Unknown command: ``<erstes_Zeichen_der_Zeile>'' bekommen. <=============eine Zeile====== $> echo -e "erste\nzweite\ndritte" |sed /zweite/aEinsubtext\ mit\ Fortsetzung ==============eine Zeile====== Geht (zumindest bei GNU sed) doch auch? Benutzt du einen anderen sed oder eine andere shell? Ich habe sed 3.02.80 und bash 2.05b.0(1).
mfg Axel