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

使用jq处理多JSON文件时如何在输出中添加对应源文件名

jq多文件处理新增源文件名字段解决方案

你之前的写法失效的核心原因是使用cat *将所有文件内容合并为标准输入流传给jq,此时jq无法识别原始文件归属,内置变量input_filename会固定返回<stdin>,无法拿到真实文件名。

直接将目标JSON文件作为jq的输入参数即可,修改后的命令如下:

jq -r '.[] | select(.shot.type.id==88) | {id:.id, index:.index, player_id:.player.id, striker_name:.player.name, source_file: input_filename}' *.json

如果需要输出制表符分隔的纯文本行(而非JSON结构),可以使用如下写法:

jq -r '.[] | select(.shot.type.id==88) | [.id, .index, .player.id, .player.name, input_filename] | @tsv' *.json

补充说明:

  • 你可以将命令中的*.json替换为你实际需要匹配的文件范围
  • 如果你处理的JSON文件顶层不是数组,可以自行调整第一层的遍历逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:36:01