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

如何将经jq按stickyType分组后的curl响应格式化输出为分组名搭配带序号内容的格式?

如何将分组后的JSON格式化为指定文本格式?

我已通过命令curl <url> | jq 'group_by(.stickyType)'将curl响应按stickyType字段进行分组,分组后的输出结果为:

[ 
  [ 
    { "stickyType": "TypeA", "content": "X" }, 
    { "stickyType": "TypeA", "content": "Y" } 
  ], 
  [ 
    { "stickyType": "TypeB", "content": "Z" } 
  ] 
]

现需将该分组结果格式化输出为如下指定格式:TypeA 1. X 2. Y TypeB 1. Z,请问应如何实现这一需求?

没问题,你可以直接在现有jq命令的基础上扩展处理逻辑,就能得到想要的格式化结果。试试下面这条完整命令:

curl <url> | jq -r 'group_by(.stickyType)[] | .[0].stickyType + " " + (map(.content) | to_entries | map("\(.key+1). \(.value)") | join(" "))' | tr '\n' ' '

我来拆解一下这段命令的逻辑:

  • group_by(.stickyType)[]:遍历group_by生成的每个分组数组
  • . [0].stickyType:提取当前分组的类型标识(同一组内的stickyType值都相同,取第一个元素的即可)
  • map(.content):把分组里所有对象的content字段提取出来,形成内容数组
  • to_entries:将内容数组转换成带索引的键值对结构,方便添加序号
  • map("\(.key+1). \(.value)"):把索引加1(让序号从1开始),并格式成1. X这样的字符串
  • join(" "):把同组的序号内容用空格拼接起来
  • 最后的tr '\n' ' ':把每个分组单独输出的换行符替换成空格,让所有结果连成一整行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 13:47:29