如何替换ansible中的字符串列表?

How can I replace a list of strings in ansible?

我正在尝试用单个列表项 ["XYZ"] 替换列表 ["ABC","DEF"],如下所示,但无法弄清楚逗号 (,) 是否需要转义或者有什么问题此语法中还需要:

- name: replace list of strings
  replace:
          path: /tmp/file1
          backup: yes
          regexp: "ABC\",\"DEF"
          replace: "XYZ"

当我 运行 这个任务时,它没有按预期进行替换。

我是不是遗漏了什么或者有没有更好的方法在 ansible 中做到这一点?谢谢

将正则表达式放入 single-quoted 字符串。在这种情况下,您不必转义双引号,例如

    - name: replace list of strings
      replace:
        path: /tmp/file1
        backup: yes
        regexp: '"ABC","DEF"'
        replace: '"XYZ"'

给定文件

shell> cat /tmp/file1
["ABC","DEF"]

列表将被替换

shell> cat /tmp/file1
["XYZ"]