排除指定值的JSON数组字段
假设我想从一个API生成的大json文件中提取一个特定字段的CSV。。。所有感兴趣的东西都在一个数组中排除指定值的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本
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