我有一个配置文件,而不是需要使用脚本自动更改..
G:\xampp\www\myweb
/srv/myweb/public_html
我尝试使用所有可用的选项
sed -i \"s/G:\\xampp\\www\\myweb/\/srv\/myweb\/public_html/g\" myfile.php
但我不能让这项工作,任何帮助???
解决方案必须使用bash,因为在一个巨大的脚本中运行..感谢任何建议
答案 0 :(得分:1)
尝试绕过命令周围的引号并转义\
,如下所示:
sed -i "s/G:\\\xampp\\\www\\\myweb/\/srv\/myweb\/public_html/g" file
答案 1 :(得分:0)
这样做:
sed 's|G:\\xampp\\www\\myweb|/srv/myweb/public_html|g' -i myfile.php
我们在|
搜索命令(而不是默认sed
)中使用/
作为分隔符,以避免/
的转义,以及单引号避免\
双重逃避的一切。
答案 2 :(得分:0)
$ echo 'foo G:\xampp\www\myweb bar' | sed 's#G:\\xampp\\www\\myweb#/srv/myweb/public_html#g'
foo /srv/myweb/public_html bar
使用单引号并使用与/
不同的分隔符,这些分隔符不会出现在搜索/替换术语中(\
以外的任何字符和换行符都可用作分隔符)
\
是元字符,使用\\
来表示字面