sed命令在macOS Seirra上报错sed: -i may not be used with stdin

原因:

MacOS使用的是sed的BSD版本,它对-i选项的处理略有不同。

sed -i需要带一个字符串作为备份源文件的文件名称,如果这个字符串长度为0,则不备份。

解决办法:

例如修改filename.txt,

使用命令格式:sed -i "_bak" '动作' filename.txt

输出为filename.txt_bak(同原文件)和filename.txt(修改后的文件)。

如果不想输出备份文件:sed  -i  ""  '动作'  filename.txt


参考文章:https://blog.csdn.net/fdipzone/article/details/51253955

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • sed与awk实例 文本间隔 在每一行后面增加一空行 将原来的所有空行删除并在每一行后面增加一空行。这样在输出的文...
    stuha阅读 1,920评论 0 21
  • 本文承接之前写的三十分钟学会AWK一文,在学习完AWK之后,趁热打铁又学习了一下SED,不得不说这两个工具真的堪称...
    mylxsw阅读 4,417评论 3 74
  • grep擅长查找,awk擅长分析(select),sed擅长批量编辑行 概述 SED的英文全称是 Stream E...
    piziyang12138阅读 941评论 0 3
  • grep擅长查找,awk擅长分析(select),sed擅长批量编辑行 概述 SED的英文全称是 Stream E...
    数据萌新阅读 1,116评论 0 0
  • 8月21日,今天病房很沉默,因为我不说话。太安静的病房,空气有些沉闷。不愿让两个老人和我一起不开心,尽管他们已...
    雨街心路阅读 161评论 0 0