Ansible从标准输出获取列

Ansible从标准输出获取列,ansible,Ansible,我是Ansible的新手,因此这个问题对于更高级的用户来说可能显得很愚蠢 无论如何,我需要获取列LDFree的值362496 我知道我可以将shell模块与管道和awk一起使用,但我想知道是否可以使用某种类型的STDOUT“过滤器”在Ansible中实现它 这是CLI中的标准输出: -------------------------(MB)------------------------- CPG ---EstFree---- --

我是Ansible的新手,因此这个问题对于更高级的用户来说可能显得很愚蠢

无论如何,我需要获取列
LDFree
的值
362496

我知道我可以将
shell模块
管道和awk
一起使用,但我想知道是否可以使用某种类型的STDOUT“过滤器”在Ansible中实现它

这是CLI中的标准输出:

       -------------------------(MB)-------------------------                      
   CPG ---EstFree---- -------Usr------- ---Snp---- ---Adm---- -Capacity Efficiency-
  Name RawFree LDFree    Total     Used Total Used Total Used   Compaction    Dedup
SSD_r6  483328 362496 12693504 12666880 12288 2048  8192 1024          1.0        -

您可以在知道Ansible/Jinja支持调用本机类型的方法这一事实的情况下做到这一点:

- command: cat test.txt
  register: cmd_res
- debug:
    msg: "{{ cmd_res.stdout_lines[3].split()[2] }}"

stdout\u行[3]
–取出第四行,
.split()
–将其拆分为令牌,
[2]
–取出第三个令牌。

您可以做到这一点,因为您知道Ansible/Jinja支持调用本机类型的方法:

- command: cat test.txt
  register: cmd_res
- debug:
    msg: "{{ cmd_res.stdout_lines[3].split()[2] }}"

stdout\u-line[3]
–取出第四行,
.split()
–将其拆分为代币,
[2]
–取出第三个代币。

谢谢,我知道会有其他方法。谢谢,我知道会有其他方法做到这一点。