使用文件中的种子将linux路径替换为linux路径

时间:2017-07-13 08:34:51

标签: bash ubuntu sed replace path

我有一个配置文件,而不是需要使用脚本自动更改..

  • 原始路径:G:\xampp\www\myweb
  • 新途径:/srv/myweb/public_html

我尝试使用所有可用的选项

sed -i \"s/G:\\xampp\\www\\myweb/\/srv\/myweb\/public_html/g\" myfile.php

但我不能让这项工作,任何帮助???

解决方案必须使用bash,因为在一个巨大的脚本中运行..感谢任何建议

3 个答案:

答案 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

使用单引号并使用与/不同的分隔符,这些分隔符不会出现在搜索/替换术语中(\以外的任何字符和换行符都可用作分隔符)

\是元字符,使用\\来表示字面