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

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

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

最佳答案

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

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

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

关于regex - 如何修复此 SED 命令以查找和替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38445728/

相关文章:

c++ - RegExp 查找命令行参数

c# - 将字符串转换为给定的正则表达式模式

python - 如何将 'dynamically' 正则表达式编译为(非)二进制?

php - preg_match_all 查找某个字符串之后的所有单词

linux - 如何防止将参数传递给在 getopt 中不带参数的参数?

当脚本从函数中获取时 Bash shell 变量丢失

Python shebang 和换行符

java - 在 Linux (Centos/Redhat) 上自动化 Inline::Java 安装

linux - 在 Linux mint 中配置用户终端

linux - 如果 ISR 在 Linux 中挂起会怎样?