【问题标题】:How to modify a file but only one occurrence using ansible如何使用ansible修改文件但仅出现一次
【发布时间】:2019-12-04 20:46:13
【问题描述】:

我正在使用 ansible,目前正在尝试替换但对 lineinfile 模块开放。但我只想编辑以 root 开头的行中的最后一列(第一次出现 0)。 https://docs.python.org/2/library/re.html 我一直在看文档,不能只编辑第一次出现。我错过了什么?

foo.txt 如下,然后是文件内容下面的ansible代码。

/root/bar/foo /                           defaults        1 0
/foo/bar/foo /                           defaults        1 0
/foo/bar/foo /                           defaults        1 0
/foo/bar/foo /                           defaults        1 0
/foo/bar/foo /                           defaults        1 0



- name: edit
  replace:
   path: /path/to/foo.txt
   regexp: '0+$'
   replace: '1'

【问题讨论】:

    标签: regex ansible


    【解决方案1】:

    问:“只编辑以 root 开头的行中的最后一列。”

    答:下面的 regexpreplace 可以完成这项工作

        regexp: '^/root/(.*) 0+$'
        replace: '/root/\1 1'
    

    【讨论】:

    • 有效!用 root 定位替换该行。我认为可能有一个文字正则表达式可以满足这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 2014-07-05
    • 2021-12-31
    • 2012-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多