首页/系统/Linux 运维命令速查/jq 进阶:统计、构造与参数
文本处理77 条

jq 进阶:统计、构造与参数

jq 不止取字段:group_by 分组统计、add 求和、sort_by 排序、--arg 注入 shell 变量、@tsv/@csv 拼表,日志统计一步到位。

Linux 运维命令速查系统更新于 2026-10-12
用途聚合统计与结果构造
语法jq [选项] 过滤器
常用函数length add sort_by group_by map select @tsv

常用示例

常用示例
jq '[.items[].size] | add' stats.json                    # 求和
jq -r 'group_by(.code)[] | "\(.[0].code)\t\(length)"' hits.json | sort -rn
jq -r '.items[] | [.id, .name] | @tsv' data.json | column -t
jq -n --arg host web1 '{host: $host, ts: now}' | jq .

常用选项

常用选项
-n 空输入构造  --arg k v 传字符串变量  --argjson k v 传 JSON 变量  -S 键排序  -e 有 null/false 时退出码 1

易错点

  • group_by 前必须先 sort_by(jq 的 group_by 只合并相邻元素),否则分组不完整
  • 原地改文件必须临时文件 + mv:jq ... conf.json > conf.json 会先清空源文件

数据来源与参考

  • man 1 jq(jq 1.7 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌