コマンドのJSON出力からID番号を取得するbashスクリプトに関数があります。この値を別のJSONファイルに設定したいと思います。どうすればいいですか?
build_vpc(){
aws ec2 create vpc --Foo "ipaddress" | jq .Vpc.VpcID
}
Output : "vpc-0f482198efba76163"
この値を取得して別のJSONファイルに設定したいと思います。
ジェイソンファイル:
{
"VPC":{
"VPC_ID" : ""
}
}
答え1
次のようになります。
jq --argjson vpcid "$(
aws ec2 create vpc --Foo "ipaddress" | jq .Vpc.VpcID
)" 'setpath(["VPC","VPC_ID"]; $vpcid)' file.json > newfile.json
の出力はjq .Vpc.VpcID
jsonとして解釈され、$vpcid
other変数(pathのオブジェクト)に格納さjq
れます。.VPC.VPC_ID
["VPC","VPC_ID"]
file.json
私は上記であなたがfile.json
最初に保持する必要がある他の情報を持っていると仮定しています。修正する新しい情報が含まれています。
ポイントは、file.json
次の内容だけを含む新しいコンテンツを作成することです。
{
"VPC":{
"VPC_ID" : "that-value"
}
}
次の作業を実行できます。
aws ec2 create vpc --Foo "ipaddress" |
jq '{"VPC":{"VPC_ID":.Vpc.VpcID}}' > newfile.json