Ansible替换Windows文本文件中的所有匹配项-win_lineinfile

时间:2019-10-18 20:13:26

标签: ansible

win_lineinfile,根据Ansible文档

  

...找到的要替换的模式;只有找到的最后一行会被替换

有时您要做的就是用另一个字符串替换所有行中所有字符串的实例

- name: replace thin with oci in environment.properties
  win_shell: |
    (Get-Content "{{file_name}}").replace(':thin:',':oci:') | Set-Content -Path "{{file_name}}" -Encoding Ascii

是的,在很多情况下,模板是更好的选择

在Windows中是否有更好的本机Ansible方法?

1 个答案:

答案 0 :(得分:0)

为什么不使用:

  win_lineinfile:
      path: 'your/path/to/file.ext'
      # Line to Search/Match against
      regexp: '{{item.From}}'
      # Line to Replace with
      line: '{{item.To}}'
      backrefs: yes

backrefs选项使您可以搜索整个文件。更多信息,请点击https://docs.ansible.com/ansible/2.3/win_lineinfile_module.html