gpt4 book ai didi

ansible - 如何删除 Ansible 中匹配项之间的空白行

转载 作者:行者123 更新时间:2023-12-02 16:12:22 25 4
gpt4 key购买 nike

我正在尝试使用 Ansible 删除两行之间的空白行,但无法使其工作。我的源文件如下所示:

###This line has blank lines after it



###End of block

#More lines

我希望结果如下所示:

###This line has blank lines after it
###End of block

#More lines

到目前为止,我使用替换模块完成了此任务:

- name: Remove blank lines between matches
replace:
path: /home/vagrant/abcd
after: '###This line has blank lines after it'
regexp: '(^\n)'
replace: ''
before: '###End of block'

但该任务似乎不起作用。事实上,该任务不会对源文件执行任何操作。

如果我删除任务的最后一行(之前:'###End of block')。这些行确实被删除,但它也删除了所有空白行,直到 EOF,这不是我想要的。这是删除最后一行后的结果:

###This line has blank lines after it###End of block
#More lines

这不是预期的。

我有一个使用 sed 的解决方案,但我想尽可能保持它的幂等性。也许我需要更好的正则表达式?

请问有什么想法吗?

谢谢。

最佳答案

经过更多的尝试并使用正则表达式后,我想出了这个:

- name: Remove blank lines between matches
replace:
path: /home/vagrant/abcd
after: '###This line has blank lines after it'
regexp: '(^\s*$)'
replace: ''

这会产生:

###This line has blank lines after it
###End of block

#More lines

这就是我所追求的。但我会等到 bug 修复后再在生产中使用。

关于ansible - 如何删除 Ansible 中匹配项之间的空白行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47910129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com