jq コマンドで特定のキーを持つ配列の複数項目を同時に書き換える。

次のtest.jsonファイルの “domain_name”: “lab.sasapea.mydns.jp” である配列の複数の項目を同時に書き換える方法を試してみた。

一個のみ書き換える場合は次の方法が簡単だ。

jqコマンドで指定したキーが特定の値を持つ配列のみキーの置換(書き換え)を行う

cat test.json | jq ‘(.cert_list[] | select(.domain_name == “lab.sasapea.mydns.jp”) | .valid_time) |= 123’

で、次のようにしてみたら複数同時に書き換えできた...けど、これであってる?(-_-;)

cat test.json | jq ‘{“cert_list”:[.cert_list[] | (select(.domain_name == “lab.sasapea.mydns.jp”) | .valid_time |= 1 | .valid_time_week |= 2 | .valid_time_daily |= 3) // .]}’

以上、忘備録でした。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください