【问题标题】:Trying to extract values from aws-cli response using jq but failing, what am I doing wrong?尝试使用 jq 从 aws-cli 响应中提取值但失败了,我做错了什么?
【发布时间】:2018-08-05 17:05:17
【问题描述】:

我有以下 json 结构:

[
  {
    "IsDefault": false,
    "CidrBlock": "172.19.0.0/16",
    "DhcpOptionsId": "dopt-37fd70550",
    "State": "available",
    "CidrBlockAssociationSet": [
      {
        "CidrBlockState": {
          "State": "associated"
        },
        "CidrBlock": "172.19.0.0/16",
        "AssociationId": "vpc-cidr-assoc-f3c1559a"
      }
    ],
    "Tags": [
      {
        "Key": "Name",
        "Value": "product-Production"
      }
    ],
    "InstanceTenancy": "default",
    "VpcId": "vpc-1f0e197d"
  },
  {
    "IsDefault": false,
    "CidrBlock": "10.0.0.0/16",
    "DhcpOptionsId": "dopt-0a550861",
    "State": "available",
    "CidrBlockAssociationSet": [
      {
        "CidrBlockState": {
          "State": "associated"
        },
        "CidrBlock": "10.0.0.0/16",
        "AssociationId": "vpc-cidr-assoc-8955dae0"
      }
    ],
    "Tags": [
      {
        "Key": "Name",
        "Value": "Marketing VPC"
      }
    ],
    "InstanceTenancy": "default",
    "VpcId": "vpc-36b5585d"
  },
  .
  .
  .
]

我正在尝试使用 jq 打印所有 VpcId,但我找不到正确的方法。

这是我尝试过的:

command | jq -r '.VpcId[]'
command | jq -r '.VpcId'
command | jq -r '.[] | .VpcId'

我做错了什么?

【问题讨论】:

  • 您的第三次努力对我有用,尽管我必须使用双引号,因为我在 Windows 上。 .[] | .VpcId 的错误是什么?
  • jq:错误(在 :154):无法使用字符串“VpcId”索引数组

标签: json amazon-web-services jq json-query


【解决方案1】:

您使用的命令似乎是aws ec2 describe-vpcs

此命令实际上返回以下结构:

{
    "Vpcs": [
        {
            "VpcId": "vpc-xxxxxxxx", 
        }
    ]
}

所以你想在遍历数组之前访问Vpcs 键,像这样:

aws ec2 describe-vpcs | jq -r '.Vpcs | .[] | .VpcId'

【讨论】:

    【解决方案2】:

    要考虑的替代方法是使用..,例如

    .. | .VpcId? // empty
    

    将打印所有“VpcId”键的值,nullfalse 值除外。

    顺便提一下,.Vpcs | .[] | .VpcId 可以缩写为.Vpcs[].VpcId

    【讨论】:

      猜你喜欢
      • 2019-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多