我试图创建一个剧本,如果文件中完全没有该行,则会在特定位置为文件添加一行,但如果该行存在于任何地方,则根本不会添加该行。
例如,如果我要添加的行是" bar",我要添加的行是" foo"我可能有3个文件:
文件1
foo
bar
baz
file2的
foo
baz
file3的
foo
baz
bar
在file2
," bar"将在" foo"之后添加。但是" bar"已存在于file1
和file3
中,因此不应添加,即使在file3
中,也不会在" foo"之后立即添加。
我试过这个:
- name: Change File
lineinfile:
path: /path/to/file
line: bar
insertafter: ^foo$
问题在于这个剧本,如果我在file3
毁了它,我最终会
foo
bar
baz
bar
它只检查insertafter
,如果line
不在该行之后,则会将其添加到那里。
我怎样才能得到我想要的东西?
答案 0 :(得分:1)
我需要regexp
行:
- name: Change File
lineinfile:
path: /path/to/file
line: bar
regexp: ^bar$
insertafter: ^foo$