我有一个csvlookup,它查找值" Main"在第0列中。并返回第1列中的值。
问题是这只会返回第一个结果,我想返回所有与#34; Main"匹配的结果。
如何实现这一目标?
msg: "{{ lookup('csvfile', 'Main file=vlans.csv delimiter=, col=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