【问题标题】:How do I find and replace text using sed using ~ as delimiter如何使用 ~ 作为分隔符使用 sed 查找和替换文本
【发布时间】:2016-11-27 04:44:36
【问题描述】:

再见,

在我整理的 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' command

尝试 #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

我的研究表明,由于我要搜索的文本包含“/”字符,因此我应该使用不同的分隔符“~”来分隔查找和替换字符串。但看起来我做错了什么,任何帮助将不胜感激,谢谢。

【问题讨论】:

    标签: linux bash sed


    【解决方案1】:

    sed 替换命令的结构是s/PATTERN/REPLACEMENT/(注意命令末尾的分隔符)。

    您说得对,您可以将分隔符更改为不同的字符,因此如果您要使用~,则需要将其中一个放在命令的末尾。

    【讨论】:

    • 啊啊啊,谢谢,谢谢,谢谢!不敢相信我错过了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-05
    • 2012-02-14
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    • 1970-01-01
    • 2015-03-29
    相关资源
    最近更新 更多