2024年7月1日月曜日

jq1.5で組み立てたjsonを表示する場合は、キーに$を付けて表記したjsonを渡す


jqとはjsonを扱うためのコマンドです。
argオプションを使うとjsonの組み立てが可能です。
jq -n \
--arg text "hoge" \
'$ARGS.named'
{
"text": "hoge"
}

argオプションを利用して組み立てたコマンドをサーバー(ubuntu18.04)で動かそうとしたところ、jqのバージョンが古くて下記のエラーが発生しました。
jq: error: ARGS/0 is not defined at <top-level>, line 1:
$ARGS.named
jq: 1 compile error

「$ARGS.named」はjq v1.6から使える機能のようで、v1.5の説明書には記載が無かったです。

何とかならないか調べたところ、argsで設定したキーに$を付けたjsonを渡せば、$キーのところが置き換わる書き方を把握しました。

jq -n \
--arg text "hoge" \
'{ text: $text }'

$ARGS.namedが使えないjq v1.5でも文字列の代入をjqに任せれました。


ちなみに、書き方を把握したものの、ubuntuのjqのバージョンは18.04(Bionic Beaver)は1.5ですが20.04(Focal Fossa)から1.6なので、OS更新を更新できるならその方が1.5で頑張るより楽だと思います。


0 件のコメント :