我试图替换文件中的一个字符串。例如:
$PASSWORD="oldpassword"
使用:
$PASSWORD="newpassword"
这是应该执行此操作的Ansible任务:
- name: change password with lineinfile
lineinfile:
dest: test.txt
regexp: '^$PASSWORD='
line: '^$PASSWORD="newpassword"'
state: present
backrefs: yes
不幸的是我找不到它无法正常工作的原因。我无法用新字符串替换它。
我也在没有backrefs
的情况下尝试添加字符串而不是替换。
请指教。 谢谢。
答案 0 :(得分:5)
来自Regular expression operations:
$:匹配字符串的结尾或者在结尾处的换行符之前 字符串
所以,用反斜杠转义$
。
- lineinfile:
dest: /tmp/test.txt
regexp: '^\$PASSWORD='
line: '$PASSWORD="newpassword"'
state: present
此外,您不需要在示例中使用backrefs
参数,因为您的正则表达式没有反向引用。