如何修复此SED命令以查找&替换字符串

时间:2016-07-18 20:46:49

标签: regex linux bash sed debian

不可天,

我正在为Debian Jessie编写一个Bash脚本并且在这一行中;

<param name="script-directory" value="$${base_dir}/scripts/?.lua"/>

我正在尝试找到 base_dir} / scripts 并将其替换为 script_dir} ,以便我的新行读为:

<param name="script-directory" value="$${script_dir}/?.lua"/>

这是我到目前为止所尝试过的;

sed -rn '/s/base_dir}\/scripts/script_dir}/p' /etc/freeswitch/autoload_configs/lua.conf.xml

导致此错误;

sed: -e expression #1, char 12: unexpected `}'

我很困惑如何解决这个问题,并希望得到一些帮助,谢谢。

1 个答案:

答案 0 :(得分:4)

您可以将此sed与备用分隔符一起使用,以避免转义/

sed 's~base_dir}/scripts~script_dir}~' /etc/freeswitch/autoload_configs/lua.conf.xml

此处不需要-r(扩展正则表达式所需)