Unix iMac 外壳终端
sed -i 's/original/new/g' maths.tx
Run Code Online (Sandbox Code Playgroud)
返回消息:sed:-i 不能与标准输入一起使用
Dop*_*oti 13
Mac 使用 BSD 版本的实用程序,例如sed和date,它们有自己的特性。
在这种特定情况下,BSD 版本sed 强制要求备份文件的扩展名是-i,而不是可选的,就像在 GNU 中一样sed。
像这样:
sed -i .bak 's/needle/pin/g' haystack
Run Code Online (Sandbox Code Playgroud)
所显示的命令将替换的所有实例needle与pin文件中haystack,原来的文件将在被保留haystack.bak。
从在sedMac 上实现的手册:
Run Code Online (Sandbox Code Playgroud)-i extension Edit files in-place, saving backups with the specified extension. If a zero-length extension is given, no backup will be saved. It is not recommended to give a zero-length extension when in-place editing files, as you risk corruption or partial content in situations where disk space is exhausted, etc.
与在 Linux 主机上相反:
Run Code Online (Sandbox Code Playgroud)-i[SUFFIX], --in-place[=SUFFIX] edit files in place (makes backup if SUFFIX supplied)
请注意,“零长度扩展”与“无扩展”不同。然后,您可以完全避开备份:
sed -i '' 's/needle/pin/g' haystack
Run Code Online (Sandbox Code Playgroud)