gpt4 book ai didi

regex - Ansible 列表变量和选择过滤器以忽略匹配项

转载 作者:行者123 更新时间:2023-12-05 09:10:53 25 4
gpt4 key购买 nike

我在 ansible playbook 中有一个变量 dir_lst_raw ,它的值是一个 list ,如下所示:

"dir_lst_raw": [
"/path1/dir1/user",
"/path2/dir2/admin",
"/path3/dir3/user.ansible_backup_2020-03-16",
"/path1/dir1/config.ansible_backup_2020-03-16",
"/path2/dir2/dir3/somefile"
]

我需要删除所有包含 .ansible_backup_ 的行,并作为 list 保存到另一个变量。我用谷歌搜索了正则表达式并尝试不匹配模式与选择过滤器如下:

  - set_fact:
dir_lst: "{{ dir_lst_flt_r | select('match','(^.ansible_backup_)+') | list }}"

但是新变量 dir_lst 结果是一个空列表。我期待 dir_lst 如下:

"dir_lst_raw": [
"/path1/dir1/user",
"/path2/dir2/admin",
"/path2/dir2/dir3/somefile"
]

有人可以建议我如何完成它吗?

最佳答案

问题:“删除所有包含 .ansible_backup_ 的行”

A:下面的任务完成了工作

    - set_fact:
dir_lst: "{{ dir_lst_raw|reject('match', my_regex)|list }}"
vars:
my_regex: '^(.*)\.ansible_backup_(.*)$'
- debug:
var: dir_lst

给予

dir_lst:
- /path1/dir1/user
- /path2/dir2/admin
- /path2/dir2/dir3/somefile

关于regex - Ansible 列表变量和选择过滤器以忽略匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60718936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com