提问人:mjf 提问时间:11/29/2022 最后编辑:mjf 更新时间:11/29/2022 访问量:69
如何使用jq(1)从RDAP JSON中获取滥用联系人电子邮件?
How to get the abuse contact email from RDAP JSON using jq(1)?
问:
具有与此类似的 RDAP JSON,
如何使用 (es) 获取滥用电子邮件地址(角色设置为“滥用”的条目(如果有))?谢谢。vCardArray
jq(1)
PS:当然,我自己尝试过,但我完全无法从JSON中获得我需要的东西。(我主要习惯于仅用作 JSON 的漂亮打印机。这是我第二次尝试做一些比使用它更复杂的事情,因为我在实践中很少需要解析 JSON。jq(1)
jq < ugly.json
答:
1赞
0stone0
11/29/2022
#1
.entities[].entities[] | select(.roles | index("abuse")).vcardArray[1][] | select(.[0] == "email") | last
将输出如下:"[email protected]"
- 我们遍历所有
.entities[].entities[]
- 选择包含带有
.roles
abuse
- 从 vcardArray 中获取字段:
.vcardArray[1]
- 选择第一个索引匹配的索引
.[0]
email
- 取该数组的最后一个值
在线试用
评论
0赞
mjf
11/29/2022
工程。并很好地解释了。我学到了一些东西。总有一天我会试一试。现在,非常感谢你。jq(1)
评论
rdap -r 8.8.8.8 |jq 'map(select([.roles[]|contains("abuse")]|any)'
rdap -r 8.8.8.8 |jq '.events | map(select(vCardArray[].roles == "abuse"))[0] | .roles'
jq(1)
sed(1)
awk(1)