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

使用jq提取JSON的name与size字段后如何按size数值排序

你出现报错的核心原因是sort_by是jq内置的数组处理函数,仅能对jq内部的JSON数组对象生效。你在之前的命令中已经通过join(",")将每条结果处理为纯字符串,既不存在.size字段可供提取,也不符合sort_by要求的数组输入格式,因此触发报错。

方案1:在jq内部完成排序(推荐)

直接调整jq语句的执行顺序,先对全量数据按size数值排序,再做格式化输出,无需依赖外部工具:

jq -r 'sort_by(.size | tonumber) | .[] | [.name, .size] | join(",")' file.json

执行逻辑说明:先对整个输入的JSON数组按照size字段的数值类型完成排序,再遍历排序后的数组逐个取出name和size字段拼接为逗号分隔的字符串输出。

方案2:通过shell的sort命令对输出结果排序

如果你不想修改原有jq语句,可以直接追加shell的sort命令对已输出的逗号分隔文本做排序:

jq -r '.[] | [.name, .size] | join(",")' file.json | sort -t ',' -k 2n

参数说明:

  • -t ','指定字段分隔符为逗号
  • -k 2n指定按第二列做数值类型排序

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:30:05