Ansible:存在重复的行,但仅更新特定的事件

时间:2016-09-12 18:48:22

标签: ansible ansible-playbook ansible-2.x

我必须改变

`<!--<parameter name=\"HostnameVerifier\">DefaultAndLocalhost</parameter>-->`

要     APIM_HOME / repository / conf / axis2 / axis2.xml中的<!--<parameter name=\"HostnameVerifier\">AllowAll</parameter>-->

我正在使用

- name: "Modify HostnameVerifier" lineinfile: dest: "/home/ec2-user/ansible-test/wso2am-2.0.0/repository/conf/axis2/axis2.xml" state: "present" line: "\t\t<parameter name=\"HostnameVerifier\">AllowAll</parameter>" regexp: "<!--<parameter name=\"HostnameVerifier\">DefaultAndLocalhost</parameter>-->"

这只是替换正则表达式的第3次出现。我希望它只替换第二次出现。我该怎么做?

1 个答案:

答案 0 :(得分:0)

您无法使用lineinfile执行此操作。来自docs

  

...只有找到的最后一行才会被替换......

并且lineinfile逐行迭代 - 您无法为其添加更多上下文。

您应该使用replace模块并在regexp中添加更多上下文,以便与要修改的文件部分相匹配。您可以在此处使用多行模式。