如何通过Linux命令行编辑JSON文件在指定元素前插入新条目
实现方法
处理JSON修改优先用专用工具避免语法错误,以下提供两种Linux命令行可直接使用的方案:
方案1:使用jq(推荐,适配所有合法JSON)
jq是Linux下专门处理JSON的命令行工具,不会因为JSON缩进、换行格式变化失效,是最稳妥的方案。
- 若系统未安装jq,先执行对应安装命令:
- Debian/Ubuntu系:
sudo apt update && sudo apt install -y jq - CentOS/RHEL系:
sudo yum install -y jq
- Debian/Ubuntu系:
- 执行修改命令:
命令逻辑:读取target.json内容,将jq '.layerOrder |= ["Layer0"] + .' target.json > tmp.json && mv tmp.json target.jsonlayerOrder数组重构为["Layer0"]拼接原数组的新数组,先写入临时文件再覆盖原文件,避免写入异常损坏原文件。执行后直接得到你需要的目标JSON内容。
方案2:使用sed(无需额外安装工具,仅适配固定格式场景)
如果你给出的文件格式完全固定("layerOrder": [单独占一行、元素缩进为4空格),可以直接用系统自带的sed工具完成修改,不需要装额外软件:
sed -i '/"layerOrder": \[/a\ "Layer0",' target.json
命令逻辑:匹配到"layerOrder": [所在行后,追加一行4空格缩进的"Layer0",内容,直接原地修改文件。
注意:该方案依赖固定文本格式,如果原JSON的数组写法有变化(比如
[和键名写在同一行、缩进不是4空格),会出现匹配失败、内容插错位置的问题,复杂场景不推荐使用。
内容的提问来源于stack exchange,提问作者Genadiy Frolov
相关产品推荐
相关产品推荐

