jq - 选择包含数组或/和

时间:2016-11-24 20:36:51

标签: json jq

目前这有效:

array = ["darwin","intel"]

如果{{1}}它返回包含darwin"和"的对象。英特尔。 如何让它返回包含darwin"和/或"的对象?英特尔?

1 个答案:

答案 0 :(得分:1)

假设您的jq有any/2,我建议您使用intersectq/2的以下定义:

def intersectq(a;b): any(a[]; . as $x | any( b[]; . == $x) );

然后使用的过滤器就是:

.[] | select( intersectq(.hosts; $array)) | .hostName

如:

jq --argjson array '["darwin","intel"]' -r -f program.jq hosts.json