You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用jq统计JSON日志中id.orig_h到id.resp_h的连接次数问题

错误原因

  1. Cannot index number with string "id.orig_h":group_by是数组操作函数,你没有加--slurp(-s)参数把输入的JSON对象流整合成数组,函数作用于单个JSON对象时触发类型不匹配。
  2. string (" ") and number (225) cannot be added:join函数仅支持拼接全字符串类型的数组,你构造的输出数组中包含数值类型的连接计数,拼接时类型冲突。

修正后完整命令

jq -sr '
map(select(.resp_ip_bytes > 0 and .orig_ip_bytes > 0 and .duration > 0 and .orig_bytes > 0 and .resp_bytes > 0))
| group_by([."id.orig_h", ."id.resp_h"])
| map(.[0] + {count: length})
| sort_by(-.count, -.resp_ip_bytes)
| .[] | [."id.orig_h", "->", ."id.resp_h", "|", (.count|tostring)] | join(" ")
' 日志文件路径

关键修正说明

  • 保留-s参数将输入的多JSON对象转为数组,适配group_by的入参要求
  • 优化分组计数逻辑,直接取每组第一条记录加统计值,避免冗余遍历
  • 拼接输出前用tostring将数值类型的连接计数转为字符串,解决join的类型冲突问题
  • 若仅需输出连接次数最高的第一条记录,将最后一行的.[]替换为first即可,和你原有逻辑一致。

注:你提供的样例输入中所有记录的resp_bytes、resp_ip_bytes均为0,默认筛选条件下无输出,可临时调整筛选条件验证语句效果。

内容的提问来源于stack exchange,提问作者net_solv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 20:45:05