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

使用jq命令修改JSON重复输出问题及新文件生成方法

解决jq输出原始+修改后JSON的问题

问题原因

你的file.json最后一行"maxRunningActivities": 5,末尾多了一个逗号,这属于无效JSON语法。jq会将这种错误解析为两个JSON对象(逗号前后各一个),所以执行命令后会同时输出原始和修改后的两个结果。

解决方案

步骤1:修复原始JSON的语法错误

打开file.json,删除"maxRunningActivities": 5,末尾的逗号,修正后内容如下:

{  
  "Balise1": true,
  "Balise2": true,
  "OtherThingEnabled": false,
  "proxySettings": {
    "port": 0
  },
  "mailSettings": {},
  "maxRunningActivitiesPerJob": 5,
  "maxRunningActivities": 5
}

步骤2:执行正确的jq命令并生成新文件

使用重定向符号>将修改后的内容写入新文件(比如updated_file.json),命令如下:

jq --arg host "proxy.hub.gcp.url.com" --arg port "80" '.proxySettings = { host: $host, port: ($port | tonumber) }' file.json > updated_file.json

注意:这里加了($port | tonumber)是因为原始port是数字类型,而--arg传递的是字符串,转成数字能保持JSON类型一致,避免类型不匹配问题。

可选:直接覆盖原文件(谨慎操作)

如果想直接修改原文件,可使用sponge工具(需先安装moreutils包),避免重定向导致的文件提前清空问题:

jq --arg host "proxy.hub.gcp.url.com" --arg port "80" '.proxySettings = { host: $host, port: ($port | tonumber) }' file.json | sponge file.json

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 11:50:22