我正在使用jq处理JSON数据。我想知道如何在其中有条件地打印内容。
比如说我对一个名为geo
的字段感兴趣。我使用了以下命令并发现只有一个条目的geo
是null
:
% cat all.json | jq '.geo != null' | sort | uniq -c
1 false
6891 true
如何只打印出该条目而不打印其他内容?
手册中没有类似于print
命令的东西。这个也不起作用:cat all.json | jq 'if .place == null then . end'
。jq
抱怨语法错误。
cat all.json | jq 'select(.geo != null) | .geo' > geo-only.json
。 - Andy Reagancat
是不必要的,你可以这样做jq 'select(.geo != null) | .geo' all.json > geo-only.json
。 - João Ciocca