比方说,我想从CSV
生成的大型json
文件中提取一个包含特定字段的API
,所有感兴趣的东西都在数组内部。
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
本身内会更好/更有效。怎么能做到?
答案 0 :(得分:1)
在构建输入到.array
的数组之前,先过滤@csv
中的记录。
jq -r '.array[] |
select(.uniqV | startswith("BAD-") | not) |
[.uniqV, .v1, .v2, .v3] |
@csv' something.json