Linux下如何用jq解析ruTorrent返回的无常规键名JSON数据
1. 提取所有作为键名的哈希值列表
使用jq内置的keys函数即可获取t对象下的所有哈希键名:
- 输出带格式的JSON数组:
jq '.t | keys' 你的JSON文件路径 - 输出为每行一个无引号的纯文本哈希值:
jq -r '.t | keys[]' 你的JSON文件路径
2. 提取每个哈希对应数组中的秒级时间戳
从你提供的示例结构可确认,时间戳固定存储在数组的指定下标位置(数组从0开始计数):
- 下标21:公共更新时间戳(示例中为1622459402)
- 下标26:种子单独的新增时间戳(示例中为1622421479)
如果需要同时输出哈希值和对应时间戳,可使用to_entries遍历未知键名的对象,命令如下:
- 输出结构化JSON格式:
jq '.t | to_entries[] | {infohash: .key, update_time: .value[21], add_time: .value[26]}' 你的JSON文件路径 - 输出为制表符分隔的纯文本(方便后续脚本处理):
jq -r '.t | to_entries[] | "\(.key)\t\(.value[21])\t\(.value[26])"' 你的JSON文件路径
内容的提问来源于stack exchange,提问作者Error2k
相关产品推荐
相关产品推荐

