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

能否简化指定jq映射代码?消除变量赋值实现TSV输出

简化jq代码实现key与source_records配对输出TSV

场景与现有代码

给定JSON数据:

{
  "key": "/books/OL1000072M",
  "source_records": [
    "ia:daywithtroubadou00pern",
    "bwb:9780822519157",
    "marc:marc_loc_2016/BooksAll.2016.part25.utf8:103836014:1267"
  ]
}

现有jq代码实现将key与每个source_records元素配对输出TSV:

jq -r '.key as $olid | .source_records | map([$olid, .])[] | @tsv'

需求:消除变量赋值,简化代码逻辑。

简化后的代码

可以直接遍历source_records的元素,同时引用上层上下文的key字段,无需单独赋值变量:

jq -r '.source_records[] | [.key, .] | @tsv'

说明

  • 遍历.source_records[]时,当前上下文是数组中的单个元素,但jq的作用域允许访问上层对象的字段,因此.key依然指向原JSON的key值。
  • 对每个元素构造[.key, .]数组后,通过@tsv转换为制表符分隔的两列输出,效果与原代码完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 07:10:27