Ansible csvfile查找,多行?

时间:2017-01-25 19:10:03

标签: csv ansible

我有一个csvlookup,它查找值" Main"在第0列中。并返回第1列中的值。

问题是这只会返回第一个结果,我想返回所有与#34; Main"匹配的结果。

如何实现这一目标?

msg: "{{ lookup('csvfile', 'Main file=vlans.csv delimiter=, col=1') }}" 

1 个答案:

答案 0 :(得分:0)

使用默认的csvfile查找插件无法实现此目的。

第一个选项 - 使用带有lines查找的linux工具:

{{ lookup('lines', 'grep ^Main vlans.csv | cut -d, -f2', wantlist=true) }}

第二个选项 - 将standard csvfile.py复制到./lookup_plugins并稍微修改read_csv功能:

        r = []
        for row in creader:
            if row[0] == key:
                r.append(row[int(col)])
        if len(r) > 0:
            return r