用Ansible从文件中的Ansible STDOUT_LINES删除符号

发布于 2025-01-18 04:03:28 字数 705 浏览 0 评论 0原文

A 文件 acounts.list 中有一行

['# name [email protected]', 'zimbraIsDelegatedAdminAccount: TRUE']

我想删除 ['# name、所有 ''] 结果会是什么[email protected], zimbraIsDeleeratedAdminAccount: TRUE

我尝试创建任务来删除第一个 ['# name

- lineinfile:
    dest: /home/acounts.list
    state: absent
    regexp: "^\[\'\#\sname\s"

...但我得到了错误。您能帮忙解决吗?谢谢。

A have the line in file acounts.list

['# name [email protected]', 'zimbraIsDelegatedAdminAccount: TRUE']

I would like to remove ['# name, all ' and '] What would the result be [email protected], zimbraIsDelegatedAdminAccount: TRUE

I tried to create task to remove first ['# name

- lineinfile:
    dest: /home/acounts.list
    state: absent
    regexp: "^\[\'\#\sname\s"

... but i got error. Could you please help with solution? Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

独孤求败 2025-01-25 04:03:28

使用替换代替:

- name: replace
  ansible.builtin.replace:
    path: /home/acounts.list
    regexp: "['\\[\\]]|# *name *"
    replace: ''

你也可以写: regexp: '[''\[\]]|# *name *'

['\\[\\]] 表示替换所有 '[] (或 == []),

因此 [ 和 ] 是特殊字符,您必须通过 < 进行保护code>\ 和 " 你必须保护\ 也由另一个 \ (当被 ' 包围时不需要)

| 表示 or ,另一个表达式是 < code># *name * * 表示零个或多个空格

use replace instead:

- name: replace
  ansible.builtin.replace:
    path: /home/acounts.list
    regexp: "['\\[\\]]|# *name *"
    replace: ''

you could write too: regexp: '[''\[\]]|# *name *'

['\\[\\]] means replace all ' or [ or ] (or == [])

so as [ and ] are special char, you ahve to protect by \ with " you have to protect \ too by another \ (not needed when surrounded by ')

| means or and the other expression is # *name * * means zero or more space

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文