我正在尝试使用EC2现货船队请求。我需要根据ImageId的传入值提取SpotFleetRequestId。我无法弄清楚。有人可以帮忙吗?这是json:
{
“SpotFleetRequestConfigs”:[ { “SpotFleetRequestId”:“sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE”, “SpotFleetRequestConfig”:{ “TargetCapacity”:20, “LaunchSpecifications”:[ { “EbsOptimized”:false, “NetworkInterfaces”:[ { “SubnetId”:“subnet-a61dafcf”, “DeviceIndex”:0, “DeleteOnTermination”:false, “AssociatePublicIpAddress”:是的, “SecondaryPrivateIpAddressCount”:0 } ] “InstanceType”:“cc2.8xlarge”, “ImageId”:“ami-1a2b3c4d” }, { “EbsOptimized”:false, “NetworkInterfaces”:[ { “SubnetId”:“subnet-a61dafcf”, “DeviceIndex”:0, “DeleteOnTermination”:false, “AssociatePublicIpAddress”:是的, “SecondaryPrivateIpAddressCount”:0 } ] “InstanceType”:“r3.8xlarge”, “ImageId”:“ami-1a2b3c4d” } ] “SpotPrice”:“0.05”, “IamFleetRole”:“arn:aws:iam :: 123456789012:role / my-spot-fleet-role” }, “SpotFleetRequestState”:“活跃” }, { “SpotFleetRequestId”:“sfr-306341ed-9739-402e-881b-ce47bEXAMPLE”, “SpotFleetRequestConfig”:{ “TargetCapacity”:20, “LaunchSpecifications”:[ { “EbsOptimized”:false, “NetworkInterfaces”:[ { “SubnetId”:“subnet-6e7f829e”, “DeviceIndex”:0, “DeleteOnTermination”:false, “AssociatePublicIpAddress”:是的, “SecondaryPrivateIpAddressCount”:0 } ] “InstanceType”:“m3.medium”, “ImageId”:“ami-1a2b3c4d” } ] “SpotPrice”:“0.05”, “IamFleetRole”:“arn:aws:iam :: 123456789012:role / my-spot-fleet-role” }, “SpotFleetRequestState”:“活跃” } ] }
答案 0 :(得分:0)
不完全确定你的意思,但是这个:
echo "$json" | grep -o '\(SpotFleetRequestId\|ImageId\): [0-9A-Za-z-]\+' | uniq
产生这个:
SpotFleetRequestId: sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
ImageId: ami-1a2b3c4d
SpotFleetRequestId: sfr-306341ed-9739-402e-881b-ce47bEXAMPLE
ImageId: ami-1a2b3c4d