Json 解析AWS CLI命令
我想分析AWS CLI命令的输出Json 解析AWS CLI命令,json,bash,amazon-web-services,parsing,aws-cli,Json,Bash,Amazon Web Services,Parsing,Aws Cli,我想分析AWS CLI命令的输出 aws ec2 describe-transit-gateways 从上面可以看出,我想要得到的输出是作为标记示例给出的传输网关的名称:(“name”:“dev tgw”) 我能够从下面的脚本中检索TGW ID和传输网关所有者 result=`aws ec2 describe-transit-gateways --profile $acc` for tgw in $(echo "${result}" |jq -r '.Transi
aws ec2 describe-transit-gateways
从上面可以看出,我想要得到的输出是作为标记示例给出的传输网关的名称:(“name”:“dev tgw”)
我能够从下面的脚本中检索TGW ID和传输网关所有者
result=`aws ec2 describe-transit-gateways --profile $acc`
for tgw in $(echo "${result}" |jq -r '.TransitGateways[] | @base64'); do
_jq() {
echo ${tgw} | base64 --decode | jq -r ${1}
}
Tgw=$(_jq '.TransitGatewayId')
Tgw_owner=$(_jq '.OwnerId')
Tgw_name=$(_jq '.Tags.Name')
echo "$acc.Name"
echo "Transit_Gateway": "$Tgw"
echo "TGW_Owner_ID": "$Tgw_owner"
echo "TGW_name": "$Tgw_name"
但我无法使用检索TGW的名称
Tgw_name=$(_jq '.Tags.Name')
echo "TGW_name": "$Tgw_name"
我遗漏了什么还是循环错误了?您可以尝试以下版本:
result=$(aws ec2 describe-transit-gateways --profile $acc)
for tgw in $(echo "${result}" | jq -r '.TransitGateways[] | @base64'); do
_jq() {
echo ${tgw} | base64 --decode | jq -r "${1}"
}
Tgw=$(_jq '.TransitGatewayId')
Tgw_owner=$(_jq '.OwnerId')
Tgw_name=$(_jq '.Tags[] | select(.Key == "Name").Value')
echo "$acc.Name"
echo "Transit_Gateway": "$Tgw"
echo "TGW_Owner_ID": "$Tgw_owner"
echo "TGW_name": "$Tgw_name"
done
```jq:错误:无法打开文件|:没有这样的文件或目录jq:错误:无法打开文件选择(.Key:没有这样的文件或目录jq:错误:无法打开文件==:没有这样的文件或目录jq:错误:无法打开文件“名称”)。值:没有这样的文件或目录directory@Balakrishna你复制了所有的代码而不是一行吗?是的,谢谢man@Balakrishna没问题。很高兴它成功了:-)