Ansible 将一个数组转换为另一个数组

Ansible 将一个数组转换为另一个数组,ansible,Ansible,我正在尝试将一个输出数组转换为另一个数组 假设我有一个命令的以下输出: kube-system extension-apiserver-authentication 6 119d kube-system kube-dns 0 119d kube-system kube-dns-autoscaler 1 119d k

我正在尝试将一个输出数组转换为另一个数组

假设我有一个命令的以下输出:

kube-system        extension-apiserver-authentication   6         119d
kube-system        kube-dns                             0         119d
kube-system        kube-dns-autoscaler                  1         119d
kube-system        kube-flannel-cfg                     2         119d
kube-system        kubernetes-dashboard-settings        1         29d
我希望每个元素
cut-d'-f2
得到一个只包含列2的数组

类似于Java8中的
list.stream().map(l->l.getName()).collect(toList())

为了在本地测试它,我尝试使用
ls-al
as

  • ls-al
    a文件夹
  • 获取第三列
    所有者
    ,并返回所有者列表 它的演示将是:


    有什么想法吗

    F.Y.I

    我的电脑中的
    ls-al
    输出类似于:

    -rw-rw-r-- 1 hearen hearen     1 Sep   5 12:55 tmp
    

    不要使用Ansible来实现您将在Bash和中编写的代码

    如果您想获得所有者列表,以下是方法:

    - name: List a folder
      find:
        path: .
      register: find
    
    - debug:
        msg: "{{ find.files | map(attribute='pw_name') | list }}"
    

    我通过
    “{{item.split()[2]}}”
    而不是
    cut-d'-f3
    来解决这个问题,使用cut元素时有两种情况:

  • 一个任务,我可以直接使用它来获取特定的

  • 对于几个任务,我将使用在块上循环,您可以参考,或者
  • - name: List a folder
      find:
        path: .
      register: find
    
    - debug:
        msg: "{{ find.files | map(attribute='pw_name') | list }}"
    
      - name: Get Second via split
        debug: 
          msg: "{{ item.split()[1] }}"
        loop: "{{ result.stdout_lines }}"