使用 Ansible 从文件中的 ansible stdout_lines 中删除符号
Remove symbols from ansible stdout_lines in file with Ansible
文件中有行 acounts.list
['# name prueba7@prueba7.com', 'zimbraIsDelegatedAdminAccount: TRUE']
我想删除 ['# name
、所有 '
和 ']
结果会是什么 prueba7@prueba7.com, zimbraIsDelegatedAdminAccount: TRUE
我尝试先创建要删除的任务['# name
- lineinfile:
dest: /home/acounts.list
state: absent
regexp: "^\[\'\#\sname\s"
...但是我得到了错误。你能帮忙解决一下吗?谢谢。
改用替换:
- name: replace
ansible.builtin.replace:
path: /home/acounts.list
regexp: "['\[\]]|# *name *"
replace: ''
你也可以这样写:regexp: '[''\[\]]|# *name *'
['\[\]]
表示替换所有'
或[
或]
(或==[])
因为 [ 和 ] 是特殊字符,你必须用 \
和 "
来保护你必须用另一个 \
来保护 \
(不需要当被 ')
包围时
|
表示 or
而另一个表达式是 # *name *
*
表示零个或多个 space
文件中有行 acounts.list
['# name prueba7@prueba7.com', 'zimbraIsDelegatedAdminAccount: TRUE']
我想删除 ['# name
、所有 '
和 ']
结果会是什么 prueba7@prueba7.com, zimbraIsDelegatedAdminAccount: TRUE
我尝试先创建要删除的任务['# name
- lineinfile:
dest: /home/acounts.list
state: absent
regexp: "^\[\'\#\sname\s"
...但是我得到了错误。你能帮忙解决一下吗?谢谢。
改用替换:
- name: replace
ansible.builtin.replace:
path: /home/acounts.list
regexp: "['\[\]]|# *name *"
replace: ''
你也可以这样写:regexp: '[''\[\]]|# *name *'
['\[\]]
表示替换所有'
或[
或]
(或==[])
因为 [ 和 ] 是特殊字符,你必须用 \
和 "
来保护你必须用另一个 \
来保护 \
(不需要当被 ')
|
表示 or
而另一个表达式是 # *name *
*
表示零个或多个 space