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

如何用JQ从单个JSON文件生成两个CSV文件

单次解析JSON日志生成多个CSV文件的高效方案

当然可以!你完全没必要重复解析两次日志文件——用JQ结合shell的文件描述符重定向,就能在单次解析过程中同时生成两个CSV文件,既高效又省事,尤其适合处理大体积的JSON日志。

具体实现命令

直接用这条命令就能完成需求:

jq --raw-output '
  # 生成types.csv的行并发送到文件描述符3
  ([.id, .type] | @csv) >&3
  # 生成groups.csv的行并发送到文件描述符4,用逗号分隔两个操作
  , ([.id, .group] | @csv) >&4
' testJQ.log 3>types.csv 4>groups.csv

命令解释

  • 我们直接让JQ读取testJQ.log文件,省去了多余的cat管道操作
  • 对每个JSON对象,JQ只解析一次:
    1. 先提取id和type字段生成符合CSV格式的行,通过>&3发送到文件描述符3
    2. 再提取id和group字段生成CSV行,通过>&4发送到文件描述符4
  • 命令末尾的3>types.csv和4>groups.csv是shell的重定向操作,把对应的文件描述符内容写入到目标文件

执行结果验证

运行完命令后,你会得到两个符合预期的文件:

  • types.csv内容:
    1234,"A"
    5678,"B"
    
  • groups.csv内容:
    1234,"games"
    5678,"cars"
    

这种方法避免了重复读取和解析大日志文件的开销,完美适配你的需求!

内容的提问来源于stack exchange,提问作者Kristian Sköld

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:54:46