jqの使い方
概要
- コマンドラインで動作するJSONパーサー
-
.
が匿名の変数として使える -
.[]
が配列の展開となる -
|
でパイプライン -
jq -C | less -R
でページング時に色付け
インストール
ubuntu/debian
$ sudo apt install jq
macOS
$ brew install jq
具体例
pretty print
$ cat sample.json | jq .
配列の要素を選択
$ echo '{"name": "John", "age": 30}' | jq '.name'
# "John"
配列の要素を選択
$ echo '[{"name": "John", "age": 30}, {"name": "Mike", "age": 20}]' | jq '.[0].name'
# "John"
配列やオブジェクトをループして処理
$ echo '[{"name": "John", "age": 30}, {"name": "Mike", "age": 20}]' | jq '.[] | .name'
# "John"
# "Mike"
jsonのデータをcsv形式に変換
$ echo '[{"name": "John", "age": 30}, {"name": "Mike", "age": 20}]' | jq -r '.[] | [.name, .age] | @csv'
"John",30
"Mike",20
フィルターを使って複雑な条件を指定
$ echo '[{"name": "John", "age": 30}, {"name": "Mike", "age": 20}]' | jq '.[] | select(.age > 25) | .name'
# "John"