jqで整形したJSONの結果をリダイレクトする、保存する
jqはフィルタ(何を出力するか)を指定しないといけないとのことです。
'.'
というフィルタを指定することで次のコマンドにパイプできるようです。
'.'
はルート(一番外側の{}
)を意味しているとのことです
例
{
"foo" : "FOO",
"bar" : {
"baz" : "BAZ"
}
}
jq-sample
$ echo '{"foo" : "FOO", "bar" : { "baz" : "BAZ" }}' | jq ".foo"
"FOO"
$ echo '{"foo" : "FOO", "bar" : { "baz" : "BAZ" }}' | jq ".bar"
{
"baz": "BAZ"
}
$ echo '{"foo" : "FOO", "bar" : { "baz" : "BAZ" }}' | jq ".bar.baz"
"BAZ"
$ echo '{"foo" : "FOO", "bar" : { "baz" : "BAZ" }}' | jq "."
{
"foo": "FOO",
"bar": {
"baz": "BAZ"
}
}
リダイレクトする
$ cat before.json | jq '.' | grep -e "foo"
ファイルに保存する
$ cat before.json | jq '.' > after.json
https://stackoverflow.com/questions/33247228/how-to-use-jq-in-a-shell-pipeline
http://qiita.com/takeshinoda@github/items/2dec7a72930ec1f658af