我在 bash 脚本中有一个函数,它从命令的 JSON 输出中获取 ID 号。我想在另一个 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