Linux 文件处理——在指定行下面写入内容

需求

需要用 grains 来匹配一个 minion 的类型,但是原本的 minion 配置文件中已经有了 grains 这个 ID:

    grains:
      roles:
        - webserver
        - memcache
      deployment: datacenter4
      cabinet: 13
      cab_u: 14-15

因此不能单纯地在文件末尾拼接上想要的属性:

    grains:
      custom: ubuntu

否则就会引起冲突:

我们需要先定位到文件中的 grains:,接着在下一行添加上文的两行内容,变成这样:

    grains:
      custom: ubuntu
      roles:
        - webserver
        - memcache
        - ubuntu
      deployment: datacenter4
      cabinet: 13
      cab_u: 14-15

解决

使用正则匹配定位到 roles: (文件中的 roles 有很多个,但 roles: 可以保证只有一个),在它下面一行插入内容:

sed -i '/grains:/a\      custom: ubuntu' minion

查看结果:

修改成功。

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

相关阅读更多精彩内容

友情链接更多精彩内容