我有以下json:
[ { "ip": [ "8.8.4.4/32", "212.40.11.20/32" ], "port": 25, "proto": "tcp" }, { "ip": [ "212.40.11.30/32" ], "port": 3389, "proto": "tcp" } ]
使用jq
我想分离ip
数组中的IP地址,如下所示:
[ { "ip": "8.8.4.4/32", "port": 25, "proto": "tcp" }, { "ip": "212.40.11.20/32", "port": 25, "proto": "tcp" }, { "ip": "212.40.11.30/32", "port": 3389, "proto": "tcp" } ]
我使用jq 1.5
上Ubuntu 15.04
有bash 4.3.42(1)
.
编辑:
这是我从AWS生成此列表的方式:
aws ec2 describe-security-groups --group-id sg-2cf5e31 --query 'SecurityGroups[].IpPermissions[].{port:ToPort,proto:IpProtocol,ip:IpRanges[].CidrIp[]}' | jq '.[]'
下一步是添加自定义字段.
谢谢你的协助.
比@ peak和@ hek2mgl更简单,更简单的替代方案,但仍然从根本上运用相同的概念:
jq 'map(.ip = .ip[])'