sed替换含/内容报错求助:修改date.timezone配置失败
解决sed替换时斜杠冲突的方法
方法1:更换分隔符
sed的替换命令s/原内容/新内容/里的分隔符可以换成任意不冲突的字符(比如#、@、|),这样新内容里的/就不会被识别为命令的分隔符了。
针对你的场景,使用#作为分隔符的命令如下:
sed -i -e "4s#;date.timezone =#date.timezone = Europe/Berlin#" /Users/user/dev/repos/docker/text.txt
- 命令里的
4限定只修改第4行,避免误改其他匹配的行 - 替换内容里的
Europe/Berlin中的/不再触发冲突
方法2:转义斜杠
如果不想换分隔符,可以把新内容里的/用\/转义,让sed把它当作普通字符处理:
sed -i -e "4s/;date.timezone =/date.timezone = Europe\/Berlin/" /Users/user/dev/repos/docker/text.txt
这种方式适合斜杠数量少的场景,斜杠多的话可读性较差。
内容的提问来源于stack exchange,提问作者leonms.dev
相关产品推荐
相关产品推荐

