我正在使用AWS cmd的JSON输出
aws elbv2 describe-load-balancers --output json
要检索有关我的负载平衡器的信息,请参阅下面的部分json
我使用以下内容提取每个LB的DNS名称、LB名称和方案
jq -r ' .LoadBalancers[]| .DNSName,.LoadBalancerName,.Scheme'
JQ在每个数组上循环,我得到如下列表
DNS-XXXXXXXXXXXXXXXXXXXXXXXX.elb.us-west-1.amazonaws.com
LBNAME-xxxxxxxxx
internal
DNS-XXXXXXXXXX.elb.us-west-1.amazonaws.com
LBNAME-XXXXXXXXXXXXXXXXXXXXXXXX
internal
问:在JQ中有没有一种方法可以将我的值打印为CSV,或者在循环的每次迭代后至少插入一个空格?如果我不能通过JQ做到这一点,那么实现这一点的最佳方法是什么?
当我添加@csv时,我得到以下错误“字符串(“XXXX…)不能为csv格式,只能为数组“
部分JSON
"LoadBalancers": [
{
"LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-1:XXXXXXXXXXXXXXXXXXXXXXXX,
"DNSName": "DNS-XXXXXXXXXXXXXXXXXXXXXXXX.elb.us-west-1.amazonaws.com",
"CanonicalHostedZoneId": "xxxxxxxxx",
"CreatedTime": "2021-10-24T07:37:29.568000+00:00",
"LoadBalancerName": "LBNAME-xxxxxxxxx",
"Scheme": "internal",
"VpcId": "vpc-XXXXXXXXXX",
"State": {
"Code": "active"
},
"Type": "network",
"AvailabilityZones": [
{
"ZoneName": "us-west-1a",
"SubnetId": "XXXXXXXXXX,
"LoadBalancerAddresses": []
},
{
"ZoneName": "us-west-1c",
"SubnetId": "XXXXXXXXXX",
"LoadBalancerAddresses": []
}
],
"IpAddressType": "ipv4"
},
{
"LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-1:XXXXXXXXXXXXXXXXXXXXXXXX,
"DNSName": "DNS-XXXXXXXXXX.elb.us-west-1.amazonaws.com",
"CanonicalHostedZoneId": "XXXXXXXXXX",
"CreatedTime": "2022-01-05T14:14:14.570000+00:00",
"LoadBalancerName": "LBNAME-XXXXXXXXXXXXXXXXXXXXXXXX",
"Scheme": "internal",
"VpcId": "vpc-XXXXXXXXXX",
"State": {
"Code": "active"
},
"Type": "network",
"AvailabilityZones": [
{
"ZoneName": "us-west-1c",
"SubnetId": "subnet-XXXXXXXXXX",
"LoadBalancerAddresses": []
},
{
"ZoneName": "us-west-1a",
"SubnetId": "subnet-ZZZZZZZ",
"LoadBalancerAddresses": []
}
],
"IpAddressType": "ipv4"
}
]
}