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

如何仅使用jq将指定格式文本文件转换为目标结构JSON?

可以用jq完成这个转换,以下是具体实现方案

假设你的输入文件名为input.txt,直接运行以下jq命令就能完成格式转换:

jq -Rn '
  reduce inputs as $line ({};
    ($line | capture("(?<key>[^=]+)=\"(?<value>[^\"]*)\"")) as $parsed
    | .[$parsed.key] = ($parsed.value | if length == 0 then [] else split(" ") end)
  )
' input.txt

命令细节说明:

  • -Rn参数:-R让jq把输入当作原始文本行处理,-n配合inputs实现逐行读取处理每一行内容
  • reduce语句:从空对象开始,逐行处理输入文本,逐步构建目标JSON对象
  • 正则捕获:capture("(?<key>[^=]+)=\"(?<value>[^\"]*)\"")精准匹配每一行的key="value..."格式,分别提取键名和对应的值字符串
  • 值处理逻辑:
    • 如果捕获到的值是空字符串(对应原文件里的""),则设为空数组[]
    • 否则用split(" ")把空格分隔的多个值拆分成数组

实际测试效果:

输入文本:

keya="valuea valueb"
keyb=""
keyc="valuex"

执行命令后输出的JSON:

{
  "keya": ["valuea", "valueb"],
  "keyb": [],
  "keyc": ["valuex"]
}

完全符合你需要的结构,不用再依赖Python解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:01:08