Problem mit sed Zeilenumbruch

T

trequ1

Grünschnabel
Hallo,

ich möchte mit einem Perl Script über sed eine Zeile in eine Datei einfügen.

Ich sende Befehle über rsh mit folgendem Befehl:

Code:
$rsh_cmd = '[RSH Befehl]';
$response = `echo \'$rsh_cmd\' | rsh [HOSTNAME] -l [USERNAME] /bin/sh -`;
Das funktioniert so weit.

Ich möchte nun allerdings eine Datei editieren und an einer bestimmten Stelle eine Zeile einfügen. (Konkret: User in die passwd eintragen)
Nicht einfach unten anfügen, sondern an einer bestimmten Stelle einfügen.

Der hierfür notwendige sed Befehl würde so aussehen:
Code:
sed '/^[Suchstring]/ a\
[Insert-String]' passwd

Das Problem das ich habe ist nun dieser hier notwendige Zeilenumbruch nach dem a\

Auf Linux Kiste gehts, wenn man den Zeilenumbruch einfach weglässt, allerdings auf dem Zielsystem nicht, da dies eine SunOS Kiste ist.

Kann man den Zeilenumbruch irgendwie escapen?

Ich habe bereits diesen Thread dazu gefunden:
http://www.unix.com/shell-programming-scripting/20775-appending-line-sed-works-linux-but-not-solaris.html
Werde allerdings aus dem dort angegebenen ^V und ^J nicht schlau.

Sorry wenn das das falsche Forum ist, aber ich wusste net so recht wo hin damit.

mfg
Daniel
 
Hm, durch ausprobieren kam ich auf diese Lösung:
Code:
sed "`echo '/SUCHREGEXP/ a\\\\\nINSERTSTRING'`" passwd
Ich habe leider keinen SunOS-Rechner, um das live zu testen, aber vielleicht funktionierts ja trotzdem.
 
Der Gedanke ist gut, funktioniert aber nicht:

Code:
>sed "`echo '/Line 3/ a\\\\\nINSERTSTRING'`" testfile
sed: command garbled: /Line 3/ a\\\\\nINSERTSTRING
 

Ähnliche Themen

sed / Variable in mehreren Dateien ersetzen

kleines sed problem

Anleitung: Howto: OpenSUSE 10, XDMCP und Cygwin als Thin-Client

Zurück
Oben