如何解决这个SED命令来查找和replacestring

美好的一天,

我正在为Debian Jessie编写一个Bash脚本,

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

我正在试图findbase_dir} /脚本 ,并用script_dirreplace它},以便我的新行读取为:

 <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 `}' 

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

你可以使用这个sed和一个备用分隔符来避免转义/

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

你不需要-r这里(需要扩展正则表达式)