如何使用jq(1)从RDAP JSON中提取滥用联系邮箱?
使用jq提取RDAP中的滥用联系邮箱
针对RDAP JSON数据,你可以用以下jq命令直接提取角色为"abuse"的联系人邮箱:
jq -r '.contact[] | select(.vCardArray[1][] | any(.[0] == "role" and .[2] == "abuse")) | .vCardArray[1][] | select(.[0] == "email") | .[3]' your-rdap-data.json
命令拆解(适合新手理解)
.contact[]:遍历所有联系人条目select(.vCardArray[1][] | any(.[0] == "role" and .[2] == "abuse")):筛选出vCard中角色设为"abuse"的联系人- RDAP的vCardArray结构是
["vcard", [属性数组1, 属性数组2, ...]],所以[1]指向具体的属性列表;每个属性数组的第一个元素是属性类型(比如"role"),第三个元素是属性值
- RDAP的vCardArray结构是
.vCardArray[1][] | select(.[0] == "email") | .[3]:从筛选出的联系人vCard中,提取类型为"email"的属性值(邮箱地址在属性数组的第四个位置,索引为3)
如果没有找到符合条件的滥用联系人,命令不会输出任何内容,符合你“若存在则提取”的需求。
内容的提问来源于stack exchange,提问作者mjf
相关产品推荐
相关产品推荐

