Given the json
{ "games": [
{
"id":1,
"files": [ "foo.mp4" ]
},
{
"id":2,
"files": [ "foo.ogv", "bar.ogv" ]
},
{
"id":3,
"files": [ "bar.ogv" ]
}
]}
and the command
jq -r '.games[] | select(.files[] | contains("ogv"))' foo.json
, json
outputs an element once for every time it matches ogv
in the subelement array. How do I get jq
to output each matching element only once?
Using
any
would be more efficient than relying onunique
. E.g.