晚安,
在我编写的Bash-shell脚本中,我试图找到以下文本:/usr/local/freeswitch/log/freeswitch.log,并将其替换为:/var/log/freeswitch.log文件中的/etc/fail2ban/jail.local
这就是我迄今为止所尝试的,这两种方法都会导致错误:sed:-e表达式#1,char 75:未终止的"s"命令
尝试#1
sed -i 's~usr/local/freeswitch/log/freeswitch.log~var/log/freeswitch/freeswitch.log' /etc/fail2ban/jail.local
尝试#2
sed -i 's~usr/local/freeswitch/log/freeswitch.log/var/log/freeswitch/freeswitch.log' /etc/fail2ban/jail.local
我的研究表明,由于我搜索的文本包含"/"字符,我应该使用不同的分隔符"~"来分隔查找和替换字符串。但看起来我做错了什么,任何帮助都将不胜感激,谢谢。
s/PATTERN/REPLACEMENT/
(注意命令末尾的分隔符)。
您是对的,您可以将分隔符更改为不同的字符,因此如果要使用~
,则需要在命令末尾放置其中一个字符。