Ansible win_lineinfile如何附加到行

Ansible win_lineinfile如何附加到行,ansible,Ansible,我试图给一行增加价值,得到奇怪的结果 原始行(可能更改值): SomeParam=test - name: Add info win_lineinfile: path: file_path backrefs: yes regexp: '(SomeParam=*)' line: '\1,added info' \1,added info SomeParam=test,added info 代码: SomeParam=test - name: Add info

我试图给一行增加价值,得到奇怪的结果

原始行(可能更改值):

SomeParam=test
- name: Add info
  win_lineinfile:
   path: file_path
   backrefs: yes
   regexp: '(SomeParam=*)'
   line: '\1,added info'
\1,added info
SomeParam=test,added info
代码:

SomeParam=test
- name: Add info
  win_lineinfile:
   path: file_path
   backrefs: yes
   regexp: '(SomeParam=*)'
   line: '\1,added info'
\1,added info
SomeParam=test,added info
结果:

SomeParam=test
- name: Add info
  win_lineinfile:
   path: file_path
   backrefs: yes
   regexp: '(SomeParam=*)'
   line: '\1,added info'
\1,added info
SomeParam=test,added info
预期结果:

SomeParam=test
- name: Add info
  win_lineinfile:
   path: file_path
   backrefs: yes
   regexp: '(SomeParam=*)'
   line: '\1,added info'
\1,added info
SomeParam=test,added info

这里有两个问题

首先,在Windows版本的
lineinfle
(即
win\u lineinfle
)中,您需要使用
$1
而不是
\1
作为后台参考

其次,正则表达式应该是
(SomeParam=.*)
,而不是
(SomeParam=*)
——后者将匹配
SomeParam
,后跟零个或多个
=
符号,而前者将匹配
SomeParam=
,后跟零个或多个字符

考虑到上述情况,请尝试以下操作:

- name: Add info
  win_lineinfile:
    path: file_path
    backrefs: yes
    regexp: '(SomeParam=.*)'
    line: '$1,added info'

这里有两个问题

首先,在Windows版本的
lineinfle
(即
win\u lineinfle
)中,您需要使用
$1
而不是
\1
作为后台参考

其次,正则表达式应该是
(SomeParam=.*)
,而不是
(SomeParam=*)
——后者将匹配
SomeParam
,后跟零个或多个
=
符号,而前者将匹配
SomeParam=
,后跟零个或多个字符

考虑到上述情况,请尝试以下操作:

- name: Add info
  win_lineinfile:
    path: file_path
    backrefs: yes
    regexp: '(SomeParam=.*)'
    line: '$1,added info'

非常感谢这很有效:)非常感谢这很有效:)