如何通过CLI在JSON文件指定位置插入一行内容
两种方法实现JSON指定位置插入新字段
方法一:用jq(JSON专用工具,推荐)
jq是处理JSON的标准工具,能保证操作后JSON格式的正确性。执行以下命令:
jq '.item23 |= {"item23variable": "$variable"} + .' input.json > output.json
- 解释:
.item23 |=表示要修改item23这个对象;{"item23variable": "$variable"} + .把新字段和原对象合并,新字段会自动排在原有字段前面,正好符合需求。 - 若需原地修改原文件(jq 1.5及以上版本支持),可加
-i参数:
jq -i '.item23 |= {"item23variable": "$variable"} + .' input.json
方法二:用sed(文本处理,无需额外安装)
如果不想安装jq,sed作为Linux系统自带工具,可通过文本匹配插入内容。执行以下命令:
sed '/"item23": {/a\ "item23variable": "$variable",' input.json > output.json
- 解释:
/"item23": {/匹配目标行;a\表示在匹配行后追加内容,注意新行缩进要和原文件一致(这里用4个空格,和item23Config的缩进对齐)。 - 原地修改原文件可加
-i参数(GNU sed适用):
sed -i '/"item23": {/a\ "item23variable": "$variable",' input.json
注意:sed基于文本匹配,若JSON格式有变动(比如换行、空格不同)可能失效,优先推荐jq方法。
内容的提问来源于stack exchange,提问作者TheDemonLord
相关产品推荐
相关产品推荐

