在 Ansible 中,如何根据键上的正则表达式模式过滤字典?

Pie*_* D. 3 ansible

我需要根据键名称的模式提取字典的子集。例如,在下面的 v 中,我需要提取键->值部分1*。

下面的代码分配值列表,但我仍然没有找到保留 key->map 设置的方法。

  - set_fact:
      v:
        section1_1: true
        section1_2: false
        section2_1: true
        section2_2: false
        section3: true

  - set_fact:
      v2: "{{ v | select('match','^section1_.*') | map('extract', v) | list }}"

  - debug:
      var: v2
Run Code Online (Sandbox Code Playgroud)

有什么帮助吗?谢谢。

Kon*_*rov 5

合并dict2itemsitems2dict过滤:

- debug:
    msg: "{{ v | dict2items | selectattr('key', 'match', '^section1') | list | items2dict }}"
Run Code Online (Sandbox Code Playgroud)