我很新的JQ,我试图解析输出JSON我从命令得到 -使用JQ分析JSON输出以获得特定性质的新的JSON输出
aws cloudformation list-stacks --stack-status-filter CREATE_COMPLETE
得到一个新的输出其中密钥的值与特定模式匹配。
例如,这是我从以前命令输出JSON -
{
"StackSummaries": [
{
"StackId": "arn:aws:213dqwqwdqwdqwdq",
"StackName": "monkeyman",
"CreationTime": "2017-06-06T20:52:59.728Z",
"StackStatus": "CREATE_COMPLETE",
"TemplateDescription": "Liaison API ELB cloud formation script"
},
{
"StackId": "arn:aws:csdfsdfcsdfsdfsdfsdfsdfgdfgfdg",
"StackName": "monkeyman2",
"CreationTime": "2017-06-06T20:51:55.191Z",
"StackStatus": "CREATE_COMPLETE",
"TemplateDescription": "yoohooo instance"
},
{
"StackId": "arn:aws:sdffgds444fsdfsdfgdfgfdg",
"StackName": "starfish2",
"CreationTime": "2017-06-06T20:51:55.191Z",
"StackStatus": "CREATE_COMPLETE",
"TemplateDescription": "helloworld instance"
},
{
"StackId": "arn:aws:csdfsdfcsdfsdfsdfsdfsdfgdfgfdg",
"StackName": "bulldog4",
"CreationTime": "2017-06-06T20:51:55.191Z",
"StackStatus": "CREATE_COMPLETE",
"TemplateDescription": "night night instance"
},
{
"StackId": "arn:aws:yhyhyhyhyhysdfgdfgfdg",
"StackName": "carrotman",
"CreationTime": "2017-06-06T20:51:55.191Z",
"StackStatus": "CREATE_COMPLETE",
"TemplateDescription": "surprise mo instance"
}
]
}
在这里,我需要通过管道第一输出,以便创建一个新的输出JSON来JQ其中StackName startsWith monkeyman和斗牛犬和应该像 -
{
"StackSummaries": [
{
"StackId": "arn:aws:213dqwqwdqwdqwdq",
"StackName": "monkeyman",
"CreationTime": "2017-06-06T20:52:59.728Z",
"StackStatus": "CREATE_COMPLETE",
"TemplateDescription": "Liaison API ELB cloud formation script"
},
{
"StackId": "arn:aws:csdfsdfcsdfsdfsdfsdfsdfgdfgfdg",
"StackName": "monkeyman2",
"CreationTime": "2017-06-06T20:51:55.191Z",
"StackStatus": "CREATE_COMPLETE",
"TemplateDescription": "yoohooo instance"
},
{
"StackId": "arn:aws:csdfsdfcsdfsdfsdfsdfsdfgdfgfdg",
"StackName": "bulldog4",
"CreationTime": "2017-06-06T20:51:55.191Z",
"StackStatus": "CREATE_COMPLETE",
"TemplateDescription": "night night instance"
}
]
}
我已经尝试了很多,我能做到这一点在某种程度上使用基本的UNIX分裂和正则表达式的命令,但东西告诉我它禾使用jq直接做起来更容易,也更简单。
亚马逊原生支持。我们不需要'jq'来实现这一点。请参阅此链接:http://opensourceconnections.com/blog/2015/07/27/advanced-aws-cli-jmespath-query/它解释了如何实现此目的。 –