使用 grep 函数从 AWS 证书列表中提取键值对

Using grep function to extract key-value from AWS certificate list

运行 $ aws acm list-certificates 在我的 AWS 控制台上列出了所有 ARN 证书。现在我得到的答案是列表格式。我如何使用 grep cmmnd 从此列表中获取特定的 arn?

例如:运行 这个 $ aws acm list-certificates 给我,

[       {"CertificateArn": "ARN1","DomainName": "A1.com"} ,
        {"CertificateArn": "ARN2","DomainName": "A2.com"} ,
        {"CertificateArn": "ARN3","DomainName": "A3.com"} ,
        {"CertificateArn": "ARN4","DomainName": "A4.com"} ,
        {"CertificateArn": "ARN5","DomainName": "A5.com"} 
] 

现在我想使用 grep 命令获取与“DomainName=A5.com”关联的 CertificateArn。我应该使用什么命令?

使用 --query 过滤/操作 AWS cli 输出,参见 the docs

在你的情况下,这可能看起来像

aws acm list-certificates --query "(CertificateSummaryList[?DomainName=='A5.com'].CertificateArn)[0]"

可选择使用 --output=text 以在输出周围不包含 "