如何从 ansible 中的整行中删除几个字符串?

如何从 ansible 中的整行中删除几个字符串?

rem par str 如何删除一些字符串

我需要从整行中删除 rem、par、str

答案1

这个字谜的要点是只删除字符串,并保留以这些字符串开头和结尾的单词。解决方案是开始和结束正则表达式通过在单词边界处匹配一个空字符串\b。这将保持以这些字符串开头和结尾的单词不受影响。\s?如果存在,则在字符串后添加一个空格以匹配。这也会匹配行末的字符串。

使用模块代替.例如,给定文件

shell> cat /tmp/test.txt 
rem par str how to remove few strings

将要删除的字符串放入列表中

  remove_strings: [rem, par, str]

迭代列表

    - replace:
        path: /tmp/test.txt
        regexp: '\b{{ item }}\b\s?'
        replace: ''
      loop: "{{ remove_strings }}"

给出

shell> cat /tmp/test.txt 
how to remove few strings

  • 完整测试剧本的示例
- hosts: localhost
  vars:
    remove_strings: [rem, par, str]
  tasks:
    - replace:
        path: /tmp/test.txt
        regexp: '\b{{ item }}\b\s?'
        replace: ''
      loop: "{{ remove_strings }}"

相关内容