我正在使用 lineinfile 如下:
lineinfile dest=./hosts_exp insertafter='\[hosts1\]' line="xxxxxxxxx" state=present
我hosts_exp
的如下:
[local]
localhost
[hosts1]
[hosts2]
[hosts3]
lineinfile 在 [hosts3] 之后插入文本,而不是在 [hosts1] 之后插入文本。
我正在使用 lineinfile 如下:
lineinfile dest=./hosts_exp insertafter='\[hosts1\]' line="xxxxxxxxx" state=present
我hosts_exp
的如下:
[local]
localhost
[hosts1]
[hosts2]
[hosts3]
lineinfile 在 [hosts3] 之后插入文本,而不是在 [hosts1] 之后插入文本。
利用:
lineinfile:
dest: "./hosts_exp"
line: "xxxxxxxxx"
insertafter: '^\[hosts1\]'
state: present
它似乎是多余的,但您也需要指定正则表达式:
lineinfile:
dest: ./hosts_exp
insertafter: '\[hosts1\]'
regexp: '\[hosts1\]'
line: "xxxxxxxxx"
state=present
为什么?regexp
上面写着“寻找这条线” 。上面写着“insertafter
在此处注入线路”。
我对此进行了测试;这是提交。从上面的行中我的提交有一些小的变化,根据需要使用。
例子:
- name: "blah"
lineinfile:
dest: "/test.sh"
insertafter: 'test text'
line: "text add"
state: present
使用反向引用:是
lineinfile:
backrefs: yes
dest: ./hosts_exp
insertafter: '\[hosts1\]'
regexp: '\[hosts1\]'
line: "xxxxxxxxx"
state=present
这个标志稍微改变了模块的操作;insertbefore 和 insertafter 将被忽略,如果正则表达式与文件中的任何位置都不匹配,则文件将保持不变。如果正则表达式匹配,最后匹配的行将被扩展行参数替换。