在对ansible中的特定文本进行特定搜索之后插入文本

时间:2019-07-11 09:52:07

标签: ansible

我想在搜索特定的字符串或文本后插入/添加一行


header 1
      text1
      text2

header 2
      text4
      text5

预期产量

header 1
      text1
      text2
      text3 

header 2
      text4
      text5

我尝试使用ansible lineinfile,blockinfile,replace,regexp。我能够添加所需的文本,但是它添加在文件的末尾,如下所示

header 1
      text1
      text2


header 2
      text4
      text5

      text3

我希望将其完全添加到header1下和text2之后

2 个答案:

答案 0 :(得分:0)

下面是您要寻找的任务

- lineinfile:
    path: "/tmp/test.txt"
    insertafter: '^\s*text2\s*$'
    line: '      text3'

之前

$ cat /tmp/test.txt 
header 1
      text1
      text2

header 2
      text4
      text5

之后

$ cat /tmp/test.txt 
header 1
      text1
      text2
      text3

header 2
      text4
      text5

答案 1 :(得分:0)

请尝试如下

  - name: Test
    lineinfile:
     path: /tmp/file.txt
     line: '      text2\n      text3'
     regexp: '      text2'
     backrefs: yes