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

如何使用jq将stdin转为含行列表的指定JSON结构?

用jq实现从标准输入生成指定格式JSON

直接用jq的一行命令就能搞定,核心是利用-n参数和inputs函数处理标准输入的每一行:

jq -n '{cmd: "In", lines: [inputs]}'

命令解释

  • -n:告诉jq不要默认把输入解析为JSON数据,而是手动通过inputs读取内容
  • inputs:遍历标准输入的所有行,把每一行作为字符串收集起来,最终组成数组
  • 最后构造需求的JSON结构,cmd字段固定为"In",lines字段就是收集到的行数组

测试示例

比如输入三行文本:

echo -e "first line\nsecond line\nthird line" | jq -n '{cmd: "In", lines: [inputs]}'

输出结果:

{
  "cmd": "In",
  "lines": [
    "first line",
    "second line",
    "third line"
  ]
}

如果是空输入,lines会返回空数组[],完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 00:10:23