从AWS CLI获取单行JSON

Ale*_*lls 4 json amazon-web-services node.js aws-cli

我有以下命令:

aws ec2 describe-regions --output=json
Run Code Online (Sandbox Code Playgroud)

输出如下:

{
    "Regions": [
        {
            "Endpoint": "ec2.eu-north-1.amazonaws.com", 
            "RegionName": "eu-north-1"
        }, 
        {
            "Endpoint": "ec2.ap-northeast-2.amazonaws.com", 
            "RegionName": "ap-northeast-2"
        }, 
        {
            "Endpoint": "ec2.us-west-2.amazonaws.com", 
            "RegionName": "us-west-2"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

但是,这在机器上并不是真正可用的,我正在寻找单行输出,如下所示:

{"Regions":[{"Endpoint":"ec2.eu-north-1.amazonaws.com","RegionName":"eu-north-1"},{"Endpoint":"ec2.ap-northeast-2.amazonaws.com","RegionName":"ap-northeast-2"},{"Endpoint":"ec2.us-west-2.amazonaws.com","RegionName":"us-west-2"}]}
Run Code Online (Sandbox Code Playgroud)

aws-cli中有一些命令可以让我使用机器可读的JSON吗?就像是:

aws ec2 describe-regions --output='json-for-machines'
Run Code Online (Sandbox Code Playgroud)

al7*_*l76 5

使用jq像这样压缩它。

aws ec2 describe-regions --output=json| jq -c
Run Code Online (Sandbox Code Playgroud)

输出变成

{"Regions":[{"Endpoint":"ec2.eu-north-1.amazonaws.com","RegionName":"eu-north-1"},{"Endpoint":"ec2.ap-northeast-2.amazonaws.com","RegionName":"ap-northeast-2"},{"Endpoint":"ec2.us-west-2.amazonaws.com","RegionName":"us-west-2"}]}
Run Code Online (Sandbox Code Playgroud)

https://stedolan.github.io/jq/