Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ansible-如何获取列表的第一列?_Ansible - Fatal编程技术网

Ansible-如何获取列表的第一列?

Ansible-如何获取列表的第一列?,ansible,Ansible,我需要在Ansible中获取列表的第一行,我不知道如何操作。 我的输出如下: ok: [localhost] => { "msg": [ "vg01 /dev/xvdk", "vg01 /dev/xvdj", "vg02 /dev/xvdi", "vg02 /dev/xvdh", "vg0

我需要在Ansible中获取列表的第一行,我不知道如何操作。
我的输出如下:

ok: [localhost] => {
    "msg": [
        "vg01  /dev/xvdk",
        "vg01 /dev/xvdj",
        "vg02  /dev/xvdi",
        "vg02  /dev/xvdh",
        "vg03  /dev/xvdg",
        "vg03  /dev/xvdf"
    ]
}
我需要得到第一行(vg*)。
也许我可以在所有行上使用循环,但我想可能有一种可行的方法,比如
awk'{print$1}'

我尝试过拆分,但没有成功。
有人有办法吗?

谢谢。

首先,您想只获取第一行还是所有行的第一列还不清楚

从输出来看,输入是一个列表。如果我们假设输入是作为
my_list
来的,并且您试图从所有行中提取第一列,那么这应该是您想要的

- name: extract first column
  set_fact:
    extracted_columns: "{{ extracted_columns|default([]) + [item.split(' ')[0]] }}"
  with_items:
    - "{{ my_list }}"

- name: display all extracted column as list
  debug:
    msg: "{{ extracted_columns }}"
输出将类似于

TASK [display all extracted column as list msg={{ extracted_columns }}] *******************
ok: [localhost] => {
    "msg": [
        "vg01",
        "vg01",
        "vg02",
        "vg02",
        "vg03",
        "vg03"
    ]
}
TASK [display all extracted unique column as list msg={{ extracted_columns_unique }}] ******************************
ok: [localhost] => {
    "msg": [
        "vg01",
        "vg02",
        "vg03"
    ]
}
union
过滤器可用于获取唯一值(注意:重用上一个任务中提取的值)

输出将类似于

TASK [display all extracted column as list msg={{ extracted_columns }}] *******************
ok: [localhost] => {
    "msg": [
        "vg01",
        "vg01",
        "vg02",
        "vg02",
        "vg03",
        "vg03"
    ]
}
TASK [display all extracted unique column as list msg={{ extracted_columns_unique }}] ******************************
ok: [localhost] => {
    "msg": [
        "vg01",
        "vg02",
        "vg03"
    ]
}
如果要获取列表的第一项

# using index
- debug:
    msg: "{{ my_list[0] }}"


嗨,阿伦,对不起,正如你正确猜到的,我在找第一个专栏。编辑了这个问题。太感谢你了。你的回答回答了我的问题。我在想可能有一个python函数,它只会对第1列进行排序,但显然不是。再次感谢!