端くれプログラマの備忘録 Unix [Unix] jq – コマンドラインJSONプロセッサ

[Unix] jq – コマンドラインJSONプロセッサ

JSON形式で出力されるAWS CLIの実行結果をシェルスクリプトで処理する必要あり。シェルから使えるJSON処理ツールを探したところjqが見つかった。jqは軽量かつ柔軟なJSONデータ処理ツールである。

インストール

Amazon Linux

$ sudo yum install jq
$ jq --version
jq-1.5

Ubuntu

$ sudo apt install jq
$ jq --version
jq-1.6

使い方

以下のようなJSONがあると仮定する。

$ vi test.json
{
    "ManagedKeysIPV4": {
        "IPAddressVersion": "IPV4",
        "Addresses": [
            "192.168.1.1/32",
            "192.168.1.2/32"
        ]
    },
    "ManagedKeysIPV6": {
        "IPAddressVersion": "IPV6",
        "Addresses": []
    }
}

Addresses配列の内容を取得する。

$ jq ".ManagedKeysIPV4.Addresses[]" test.json
"192.168.1.1/32"
"192.168.1.2/32"<br>

スクリプトから呼び出す場合。

$ vi list.sh
json=$(echo test.json)
echo ${json}
jq -c '.ManagedKeysIPV4.Addresses[]' |
while read -r addr; do
    echo $addr
done

参考サイト

GitHub – jqlang/jq: Command-line JSON processor
https://github.com/jqlang/jq

Linux – JSON データ読み込み! – mk-mode BLOG
https://www.mk-mode.com/blog/2018/09/26/linux-json-reading/
2018-09-26

JSON配列をシェルスクリプトで一覧に変換 – Qiita
https://qiita.com/r18j21/items/73a37f10877750defed7
2021-07-12