You need to enable JavaScript to run this app. Bash变量传入JQ得到错误输出,无法正确拆分多值到JSON数组如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Bash变量传入JQ得到错误输出,无法正确拆分多值到JSON数组如何解决

问题原因

你使用--arg参数传入变量时,jq会将传入的所有内容识别为单个纯字符串,因此$a中存储的"a","b"会被整体转义后作为单个元素塞入trials数组,不会自动拆解为多个独立的字符串元素。

解决方案

方法1:直接解析现有$a格式(最适配你当前场景)

你现有的$a内容已经是用逗号分隔的带引号JSON字符串片段,只需在传入后将其包裹为合法JSON数组,用--argjson识别为数组类型后直接追加即可:

jq --argjson vals "[$a]" '.trials += $vals' data/template.json > new_file.json

该命令会自动把$a的内容封装为["a","b"]格式的JSON数组,直接追加到trials字段中,输出完全符合你的预期。

方法2:字符串拆分解析(兼容元素无引号的场景)

如果你的$a后续可能改成a,b这种无引号的逗号分隔格式,可以用拆分+去引号的方式处理:

jq --arg raw "$a" '.trials += ($raw | split(",") | map(gsub("^\"|\"$";"")))' data/template.json > new_file.json

注意事项

如果$a中的字符串元素包含逗号、双引号等特殊字符,建议你提前从源头将$a生成为合法的JSON数组格式,避免解析出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 05:45:07