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