前提・実現したいこと
jqで、jsonファイルの特定の1項目だけ上書きしたい
↓理想のafter.json
json
1{ 2 "id": "001", 3 "values": [ 4 { 5 "key": "name", 6 "value": "Taro" #書き換えたいところ 7 }, 8 { 9 "key": "age", 10 "value": "24" 11 }, 12 { 13 "key": "color", 14 "value": "orange" 15 } 16 ] 17}
発生している問題・エラーメッセージ
jq selectで検索した範囲のjsonしかafter.jsonに保存されない
shell
1jq --arg name $name '.values[] | select(.key=="name") | .value="Taro"' before.json > after.json
before.json
json
1{ 2 "id": "001", 3 "values": [ 4 { 5 "key": "name", 6 "value": "Hanako" 7 }, 8 { 9 "key": "age", 10 "value": "24" 11 }, 12 { 13 "key": "color", 14 "value": "orange" 15 } 16 ] 17}
after.json
json
1 { 2 "key": "name", 3 "value": "Taro" 4 }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。