web-dev-qa-db-ja.com

jq条件付き出力

私は jq を使用してjsonで遊んでいます。その中に条件付きで何かを印刷する方法を考えていました。

フィールドコールgeoに興味があるとします。次のコマンドを使用して、geonullであるエントリが1つだけあることを確認しました。

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

他のすべてを印刷せずにそのエントリのみを印刷するにはどうすればよいですか?

マニュアルにprintコマンドのようなものが見つかりませんでした。そして、これは機能しません:cat all.json | jq 'if .place == null then . end'jqは構文エラーについて不平を言いました。

53
clwen

select 関数を使用して、必要なエントリのみを取得できます。

jq 'select(.geo != null)' all.json
99
max taldykin