修复”sed: command i expects \ followed by text” 错误

sed -i 's/search_string/replace_string/' filename

错误

但是,我一直被以下错误绊倒:

sed: 1: "i2.html": command i expects \ followed by text

我花了很多时间试图确保我在字符串中转义了正确的字符,但是错误仍然存​​在!

问题

进一步搜索后,问题出在Mac系统与Linux的sed中。与每个问题一样,StackOverflow也有一个答案。高性能标记说明

您的Mac确实确实运行了BASH shell,但这更多地是您要处理sed的哪种实现的问题。在Mac上,sed来自BSD,与典型的Linux机器上的sed略有不同。我建议你man sed

修复

事实证明,使用-i交换机时需要提供备份扩展。chipiik提供有效的答案!

这适用于sed的GNU和BSD版本:

sed -i'' -e 's/old_link/new_link/g' *

或带备份:

sed -i'.bak' -e 's/old_link/new_link/g' *

注意-i选项后缺少空间!(GNU sed必需)

原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun34585.html

(0)
打赏 微信扫一扫不于多少! 微信扫一扫不于多少! 支付宝扫一扫礼轻情意重 支付宝扫一扫礼轻情意重
上一篇 2021年1月31日 下午7:28
下一篇 2021年2月1日