mac os上使用sed的一个坑

问题

sed可以替换文件中的某个部分。
通常查到的命令如下:

sed -i 's/main/fun/g' 'Test.txt'

但是在mac os上执行却遇到下面的错误。

sed: 1: "Test.txt": invalid command code T

原因

执行man sed查看帮助,发现 -i 操作后面要跟一个extension参数,明确备份的文件

     -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 situa-
             tions where disk space is exhausted, etc.

如果不需要备份文件,则设置一个长度为0的参数

解决

sed -i '' 's/main/fun/g' 'Test.txt'
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 14,404评论 2 33
  • 本文承接之前写的三十分钟学会AWK一文,在学习完AWK之后,趁热打铁又学习了一下SED,不得不说这两个工具真的堪称...
    mylxsw阅读 9,891评论 3 74
  • 背景: 阅读新闻 12C CDB模式下RMAN备份与恢复 [日期:2016-11-29] 来源:Linux社区 作...
    阳屯okyepd阅读 9,086评论 0 7
  • 儿子负责想,我负责画
    chewbaaca阅读 1,229评论 0 0
  • 你手拎一桶刚能喂饱肚子的泡面, 无精打采地在田埂上走着, 看着你的背影, 孤寂中夹杂着无奈, 当然头顶还有一丝懒散...
    井溢阅读 1,414评论 0 1

友情链接更多精彩内容