【小ネタ】jid を使ってみた
jid は JSON をインタラクティブに掘っていくことができるツールです.
GitHub - simeji/jid: json incremental digger https://github.com/simeji/jid
環境
$ cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.2 (Maipo) $ uname -r 3.10.0-327.28.3.el7.x86_64
jid のインストール
# cd /tmp # curl -LO https://github.com/simeji/jid/releases/download/0.6.2/jid_linux_amd64.zip # unzip ./jid_linux_amd64.zip # cp ./jid_linux_amd64 /usr/local/bin/jid # export PATH=$PATH:/usr/local/scala/bin
JSON を掘ってみる
以下の JSON ファイルを jid コマンドで掘っていきます.
{ "aa": "2AA2", "bb": { "aaa": [ 123, "cccc", [ 1, 2 ] ], "c": 321 } }
JSON を echo しパイプで jid コマンドに渡します(以下のようにファイルから読み込むこともできます.$ jid < file.json
).
$ echo '{"aa":"2AA2","bb":{"aaa":[123,"cccc",[1,2]],"c":321}}'| jid
使い方としてはざっくりと,
jid に JSON を食わせて,TAB と ENTER キーをペコペコ押していれば使い方が掴めると思います.
全キーマップは https://github.com/simeji/jid#keymaps
TAB キーを押下すると,掘っていける候補が出力されます.以下でいうと aa bb
の部分です.
[Filter]> . aa bb { "aa": "2AA2", "bb": { "aaa": [ 123, "cccc", [ 1, 2 ] ], "c": 321 } }
掘りたい候補がハイライトされた状態で ENTER キーを押下すると,その要素を掘っていけます.
(JSON に要素があれば) 更にドットキーを押下し,TAB キーを押下して掘っていけます.
[Filter]> .bb. aaa c { "aaa": [ 123, "cccc", [ 1, 2 ] ], "c": 321 }
たとえば $ aws cloudwatch describe-alarms
コマンドを jid で掘っていくと,以下のようになります.
[Filter]> .MetricAlarms[0].Dimensions[0].Value "i-0e22a8eef9eea680b" "i-0exxxxxxxxxxxxxxx"
番外編
あるプレフィックス名を持つ CloudWatch アラームが作成されている EC2 インスタンス ID の一覧を取得する.
$ aws cloudwatch describe-alarms --alarm-name-prefix [CloudWatchアラーム名のプレフィックス] --query MetricAlarms[].Dimensions[].Value