2015-09-07 38 views
0

我正在尝试使用EC2现货队列请求做些事情。我需要根据传入的ImageId值提取SpotFleetRequestId。我无法弄清楚。谁能帮忙?这里是JSON:需要根据另一个值从sh中获得json的值

{ 

“SpotFleetRequestConfigs”:[{ “SpotFleetRequestId”: “SFR-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE”, “SpotFleetRequestConfig”:{ “TargetCapacity”:20 , “LaunchSpecifications”:[ { “EbsOptimized”:假, “NetworkInterfaces”:[ { “SUBNETID”: “子网a61dafcf”, “DeviceIndex”:0, “DeleteOnTermination”:假, “AssociatePublicIpAddress”:真, “SecondaryPrivateIpAddressCount”:0 } ], “InstanceType”: “cc2.8xlarge”, “图像标识”: “AMI-1a2b3c4d” },{ “EbsOptimized”:假, “NetworkInterfaces”:[ { “SUBNETID”: “子网a61dafcf”, “DeviceIndex”:0, “DeleteOnTermination”:假, “AssociatePublicIpAddress”:真, “SecondaryPrivateIpAddressCount”:0 } ] , “InstanceType”: “r3.8xlarge”, “图像标识”: “AMI-1a2b3c4d” } ], “SpotPrice”: “0.05”, “IamFleetRole”:“ARN:AWS:IAM :: 123456789012:角色/我的地点船队角色” }, “SpotFleetRequestState”: “主动” },{ “SpotFleetRequestId”: “SFR-306341ed-9739-402e-881B-ce47bEXAMPLE”, “SpotFleetRequestConfig”: “TargetCapacity”:20, “LaunchSpecifications”:[ {EffortOptimized“:false, ”NetworkInterfaces“:[ { “SUBNETID”: “子网6e7f829e”, “DeviceIndex”:0, “DeleteOnTermination”:假, “AssociatePublicIpAddress”:真, “SecondaryPrivateIpAddressCount”:0 } ], “InstanceType”:“ m3.medium “ ”图像标识“: ”AMI-1a2b3c4d“ } ], ”SpotPrice“: ”0.05“, ”IamFleetRole“:” 阿尔恩:AWS:IAM :: 123456789012:角色/我-spot-车队角色“ }, ”SpotFleetRequestState“:”active“ } ] }

+0

我会建议你使用正确的工具,JSON处理像JQ –

回答

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 
相关问题