我有一个在线JSON文件。每次我想下载它的时候。但是我需要解析这个JSON,并在双引号之间获取在线ip。通常,我可以使用jq来解析它,比如.sample[]、.echo等,但是我的列表比Example1、2、.. 300更大,其中存储了300多个块数据。我只需要解析并获得双引号内的所有ip。
顺便说一句:我看到许多关于堆叠的问题,但没有一个与过滤这种输入有关
curl -L "https://sample.data.com/ip.json" -o 'ip.json' | *need to parsing method here*这是我的JSON文件:
{
"sample1": {
"echo": [
"255.254.253.0/32"
],
"delta": [
"199.231.211.0/32"
]
},
"sample2": {
"beta": [
"250.123.124.0/32"
],
"pre": [
"122.156.243.0/32"
]
},
.
.
.
.
.
}发布于 2021-10-15 06:38:15
如果您想提取所有看起来像IP的字符串,那么您仍然可以使用jq。如果我们将上面的示例JSON“修复”为实际的JSON,然后运行以下jq程序:
.. | strings | match("\\d+\\.\\d+\\.\\d+\\.\\d+(?:/\\d+)?").string它将输出以下内容:
"255.254.253.0/32"
"199.231.211.0/32"
"250.123.124.0/32"
"122.156.243.0/32"我猜您不想让IP保持查询状态,这可以通过-r输出标志来处理
$ curl ... | jq -r '.. | strings | match("\\d+\\.\\d+\\.\\d+\\.\\d+(?:/\\d+)?").string'
255.254.253.0/32
199.231.211.0/32
250.123.124.0/32
122.156.243.0/32https://stackoverflow.com/questions/69580672
复制相似问题