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

如何使用jq传入变量参数替换JSON值并为字段内容添加前后缀

问题修复方案

错误原因

  • jq 字符串内的变量不会自动解析,只有使用\()包裹的内容才会被当作表达式求值,原命令中的$prefix被识别为普通文本,不会替换为传入的变量值
  • 原命令添加的-c参数会输出压缩格式的JSON,和预期的格式化输出结构不一致

修复后命令

场景1:输出格式化JSON(匹配预期格式)

export prefix="sample"
jq --arg prefix "$prefix" '(.directory[].file_name |= "AWS_\($prefix)_\(.)_output.json")' test.json

场景2:直接修改原test.json文件

export prefix="sample"
jq --arg prefix "$prefix" '(.directory[].file_name |= "AWS_\($prefix)_\(.)_output.json")' test.json > tmp.json && mv tmp.json test.json

效果验证

执行后file_name字段会按照规则拼接前缀、变量值、原始文件名、后缀,最终生成AWS_sample_N11_output.json、AWS_sample_N12_output.json的预期结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:06:03