JSON を行単位にわかりやすく展開してくれるコマンド gron がピンポイントでとても便利
2022-06-13-1
[Programming]
コマンドラインでの JSON の操作には jq (軽量JSONパーサ)[2017-10-24-1] を使っています。万能で便利なんですが、奥まったところにある値だけを取りたいときとかちょっと面倒なんですよね。ちらっと値を見たいだけなのにおおげさになっちゃいがち。
ということで、 gron というのを使ってみました。
あ、これでいいや。
いわゆる「顧客(=私)が本当に必要だったもの」だわ。
例えば、AWS の PA-API で GetItems してその結果の JSON から各 Item のアダルトフラグを取り出すとき。jq だとフルパス書かなきゃならないけど、 gron だと grep との組み合わせで部分文字列書くだけ。しかも、gron だと SearchItems したときも同じの使える。
gron と似たようなこと(JSONを行単位に検索できるように展開)するスクリプトを書いたことあるけど、もう gron があればいいや。汎用的だし。
FreeBSD のバイナリが配布されているので、さくらの500円サーバでもすんなり動くのもありがたや。
§
gron はこの本で知りました。
これ、ボリュームありすぎで咀嚼しきれない感があるけど、良著です。
これからもお世話になる!
ということで、 gron というのを使ってみました。
- GitHub - tomnomnom/gron: Make JSON greppable!
- JSONをgrepしやすくするコマンドラインツールgronの紹介 - Qiita
- gronでjsonの扱いが楽になった話 – Tower of Engineers
あ、これでいいや。
いわゆる「顧客(=私)が本当に必要だったもの」だわ。
例えば、AWS の PA-API で GetItems してその結果の JSON から各 Item のアダルトフラグを取り出すとき。jq だとフルパス書かなきゃならないけど、 gron だと grep との組み合わせで部分文字列書くだけ。しかも、gron だと SearchItems したときも同じの使える。
cat a.json | jq '.ItemsResult.Items[]|.ItemInfo.ProductInfo.IsAdultProduct.DisplayValue' cat a.json | gron | grep IsAdultProduct.DisplayValue
gron と似たようなこと(JSONを行単位に検索できるように展開)するスクリプトを書いたことあるけど、もう gron があればいいや。汎用的だし。
FreeBSD のバイナリが配布されているので、さくらの500円サーバでもすんなり動くのもありがたや。
§
gron はこの本で知りました。
- 1日1問、半年以内に習得 シェル・ワンライナー160本ノック
シェルのワンライナー(その場かぎりの1行プログラム)は、LinuxやMacのコマンドラインインターフェースを立ち上げたら、すぐにプログラムを書いて即実行できます。ちょっとした作業を手っ取り早く片付けるのに向いています。大量のデータ処理、繰り返し処理ほどその効果は絶大です。本書は、そんなシェル・ワンライナーを身につけるためのトレーニング本です。大量の問題を繰り返し解くことで、実務でワンライナーを活用できるようになることを目指します。
これ、ボリュームありすぎで咀嚼しきれない感があるけど、良著です。
これからもお世話になる!