Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit sed und Slash
Ich möchte in einer datei einen Eintrag ändern, deshalb verwende ich sed.
Allerdings gibt es ein Problem wenn in dem Eintrag den ich ändern möchte ein "/" vorkommt.
Wenn ich diesen Eintrag ändern will werden der "/" falsch erkannt. Der sed Befehl sieht bisher so aus:
sed -e s/'mv foo/bar.conf /etc/bar.conf'/'cp foo/bar /etc/bar.conf'/ /root/test > /root/test2
Kann mir dabei jemand helfen ?
Danke im Vorraus
Benutze bei den Dateinamen für die '/' Zeichen jeweils "\/"; das '\' ist ein sogenanntes escape Zeichen, das '/' seine besondere Bedeutung nimmt.
ok, allerdings funktioniert es bei diesem, etwas komplexeren String nicht so richtig:
sed -e s/'# LoadModule foo_module modules\/mod_foo.so'/'LoadModule php4_module libexec\/libphp4.so'/ /etc/httpd/conf/conf/httpd.conf.tmp > /etc/httpd/conf/httpd.conf.tmp2
irgendeine Idee ?
Versuchs mal so:
sed -e s/'# LoadModule foo_module modules\/mod_foo.so'/'LoadModule php4_module libexec\/libphp4.so'/'[g]'/ /etc/httpd/conf/conf/httpd.conf.tmp > /etc/httpd/conf/httpd.conf.tmp2
Wenns so auch nicht geht, setz vor das # einen \
Der Fehler liegt ganz klar an den "/", ohne Slash funktioniert es wunderbar :(
sed -e "s/mv foo\/bar.conf \/etc\/bar.conf/cp foo\/bar \/etc\/bar.conf/" /root/test > /root/test2
oder, alternativ (falls dir die ganzen escapes nicht zusagen):
sed -e "s|mv foo/bar.conf /etc/bar.conf|cp foo/bar /etc/bar.conf|" /root/test > /root/test2
OK, danke fuer eure Hilfe
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.