2013-10-24 66 views
24

我使用jq来玩json。我想知道如何有条件地打印一些东西。jq条件输出

说我对现场调用geo感兴趣。我用下面的命令找出只有一个条目,其geonull

% cat all.json | jq '.geo != null' | sort | uniq -c    
    1 false 
6891 true 

我怎样才能打印出的条目只有不打印一切?

在手册中没有看到类似print的命令。这不起作用:cat all.json | jq 'if .place == null then . end'jq抱怨语法错误。

回答

54

可以使用select函数来获取只需输入:

jq 'select(.geo != null)' all.json 
+4

的选择工作,但全面解答里面JQ你需要再次只过滤地缘问题,管道:'所有的猫.json | jq'select(.geo!= null)| .geo'> geo-only.json' –