排除指定值的JSON数组字段

排除指定值的JSON数组字段,json,linux,jq,Json,Linux,Jq,假设我想从一个API生成的大json文件中提取一个特定字段的CSV。。。所有感兴趣的东西都在一个数组中 jq -r ".array[] | [.uniqV,.V1,.V2,.V3] | @csv" something.json 。。。但是如果唯一值以某个字符串开头,比如BAD-,我想完全排除数组成员。 我可以这样做 jq -r ".array[] | [.uniqV,.v1,.v2,.v3] | @csv" something.json | egrep -v ^\"BAD- 。。。但在jq本

假设我想从一个API生成的大json文件中提取一个特定字段的CSV。。。所有感兴趣的东西都在一个数组中

jq -r ".array[] | [.uniqV,.V1,.V2,.V3] | @csv" something.json
。。。但是如果唯一值以某个字符串开头,比如BAD-,我想完全排除数组成员。 我可以这样做

jq -r ".array[] | [.uniqV,.v1,.v2,.v3] | @csv" something.json | egrep -v ^\"BAD-
。。。但在jq本身中排除这种模式会更好/更有效。如何实现这一点?

在构建馈送到@csv的数组之前,先从.array中筛选记录

jq -r '.array[] | 
         select(.uniqV | startswith("BAD-") | not) |
         [.uniqV, .v1, .v2, .v3] |
         @csv' something.json