You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Ansible Playbook提取文件中所有person块的firstname和lastname值

Ansible提取重复person条目字段值的方法

步骤1:读取并解码目标文件内容

先用slurp模块读取文件(该模块会返回base64编码的内容),再解码为可处理的文本:

- name: 读取目标文件
  slurp:
    src: /path/to/your/target/file.txt
  register: file_raw

- name: 解码文件内容
  set_fact:
    file_content: "{{ file_raw.content | b64decode }}"

步骤2:提取所有person条目块

用正则匹配出所有以person:开头的条目块,每个块包含该条目下的所有字段:

- name: 提取所有person条目
  set_fact:
    person_blocks: "{{ file_content | regex_findall('person:\\s*(?:\\n\\s+\\w+=\\S+)+', multiline=True) }}"

注:如果字段值包含空格,可把正则里的\\S+替换为[^\\n]+,匹配等号后直到换行的所有内容。

步骤3:提取每个条目下的firstname和lastname

遍历每个person块,用正则分别提取目标字段的值,整理为结构化列表:

- name: 提取目标字段值
  set_fact:
    person_info_list: "{{ person_info_list | default([]) + [
      {'firstname': item | regex_search('firstname=(\\S+)', '\\1') | first,
       'lastname': item | regex_search('lastname=(\\S+)', '\\1') | first}
    ] }}"
  loop: "{{ person_blocks }}"

步骤4:查看提取结果

用debug模块输出最终的结构化数据:

- name: 输出提取结果
  debug:
    var: person_info_list

完整Playbook示例

- name: 提取person条目字段值
  hosts: localhost
  gather_facts: no
  tasks:
    - name: 读取目标文件
      slurp:
        src: /path/to/your/target/file.txt
      register: file_raw

    - name: 解码文件内容
      set_fact:
        file_content: "{{ file_raw.content | b64decode }}"

    - name: 提取所有person条目
      set_fact:
        person_blocks: "{{ file_content | regex_findall('person:\\s*(?:\\n\\s+\\w+=\\S+)+', multiline=True) }}"

    - name: 提取目标字段值
      set_fact:
        person_info_list: "{{ person_info_list | default([]) + [
          {'firstname': item | regex_search('firstname=(\\S+)', '\\1') | first,
           'lastname': item | regex_search('lastname=(\\S+)', '\\1') | first}
        ] }}"
      loop: "{{ person_blocks }}"

    - name: 输出提取结果
      debug:
        var: person_info_list

执行后会得到类似如下的结构化结果:

person_info_list:
  - firstname: tom
    lastname: jones
  - firstname: fred
    lastname: dorfman

内容的提问来源于stack exchange,提问作者John Engineer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 09:56:01