不可天,
在我正在整理的Bash shell脚本中,我试图找到这个文本: /usr/local/freeswitch/log/freeswitch.log 并将其替换为: /此文件中的var / log / freeswitch / freeswitch.log : /etc/fail2ban/jail.local
这是我到目前为止所尝试的,两者都会导致错误: sed:-e expression#1,char 75:unterminated`s 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
我的研究表明,由于我正在搜索的文本包含“/”字符,我应该使用不同的分隔符“〜”来分隔查找和替换字符串。但看起来我做错了什么,感谢任何帮助,谢谢。
答案 0 :(得分:3)
sed替换命令的结构是s/PATTERN/REPLACEMENT/
(注意命令末尾的分隔符)。
你是对的,你可以将分隔符更改为不同的字符,所以如果你要使用~
,你需要将其中一个分隔符放在命令的末尾。