2013-10-24 64 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' –