Ansible:lineinfile一直在压缩我现有的行,而不是在其中添加文本



我看到了几篇有类似问题的帖子,但似乎没有任何问题。有些人提到需要在我的正则表达式中使用组,所以我添加了它们,但仍然存在问题。其他人说,只要在我的内野中加上"后卫:是的",就可以了,到目前为止运气不好。

现有线路:

PATH=$PATH:$HOME/.local/bin:$HOME/bin

执行后的预期行:

PATH=$PATH:$HOME/.local/bin:$HOME/bin:/opt/somedir

执行后的实际行:

:/opt/somedir

我的答案:

- name: update ~/.bash_profile
lineinfile:
backup: yes
backrefs: yes
path: ~/.bash_profile
regexp: '^(PATH=.*)$'
line: ':/opt/somedir'

我错过了什么?

您需要将backreference添加到将要插入的行。

例如:

- name: update ~/.bash_profile
lineinfile:
backup: yes
backrefs: yes
path: ~/.bash_profile
regexp: '^(PATH=.*)$' # PATH=.* is inside group 1 because of the parentheses
line: '1:/opt/somedir' # group 1 can be referenced with 1

最新更新