我正在尝试为 IP 地址白名单设置自动化。
JSON 可以在这里找到:https://ip-ranges.atlassian.com/
我需要在 JSON 中生成每个“项目”的列表,其中“产品”包含“bitbucket”(例如)。
curl https://ip-ranges.atlassian.com/ | jq -c '.items | select(.[].product | contains("bitbucket"))'
输出是
jq: error (at <stdin>:1834): array (["confluenc...) and string ("bitbucket") cannot have their containment checked
我在这里做错了什么?
来自上述 URL 的 JSON 小样本:
{
"syncToken": 1644822802,
"creationDate": "2022-02-14T07:13:22.789203",
"items": [
{
"direction": [
"ingress",
"egress"
],
"network": "3.26.128.128",
"mask_len": 26,
"region": [
"ap-southeast-2"
],
"mask": "255.255.255.192",
"product": [
"confluence",
"jira",
"bitbucket",
"opsgenie",
"statuspage",
"halp",
"trello"
],
"cidr": "3.26.128.128/26"
},.........
回答1
解决方案的所有功劳归功于 https://stackoverflow.com/users/2158479/pmf
jq -r '.items[] | select(.product | contains(["bitbucket"]))? | .cidr'
这完美地工作