macos - 没有备份文件的 SED

标签 macos bash sed osx-mavericks

我使用以下 sed 命令替换文件中的文本:

sed -i -e 's/noreply@\(.*\).example.com/noreply@example.com/' cron.yaml

但它会在名称 cron.yaml-e 下创建文件 cron.yaml 的备份。

我试图将 -i 移动到最后:

sed -e 's/noreply@\(.*\).example.com/noreply@example.com/' -i cron.yaml

但在这种情况下 sed 返回一个错误。

我应该如何修改命令行以避免创建备份文件?

最佳答案

根据man page你应该在 macOS 上指定一个零长度扩展

sed -i '' -e 's/noreply@\(.*\).example.com/noreply@example.com/' 

关于macos - 没有备份文件的 SED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25486667/

相关文章:

python - 如何在 Mac OS X 10.6 上为 Mac OS X 10.5 编译 python 扩展?

linux - 如何将行插入到不存在字符串的特定文件中?

linux - Bash 文件名降序排序

javascript - OSX swift 中的 webviewdidfinishload 相当于什么?

c - os x 内核中图像加载的通知

objective-c - 如何设置 NSButtonCell 文本标签的颜色

bash - 获得执行 bash 脚本的权限

linux - 将 Docker 镜像中的用户切换为非 root 用户

bash - 使用 bash 从文本文件中删除保护字符之间的字符串

regex - 类似于grep的工具,可以着色/加粗但不过滤?