使用sed工具向JSON文件末尾添加行的格式优化问题
当然可以!这其实是处理JSON文件时很常见的需求——既要保证语法正确,又要让格式整洁。咱们直接用sed就能搞定,分场景给你说明:
先明确你的场景示例
假设你的原JSON文件是这样的(最后一行是闭合的}):
{ "name": "Alice", "age": 30 }
你想添加一行 "city": "New York",最终要得到符合规范的JSON:
{ "name": "Alice", "age": 30, "city": "New York" }
方法一:GNU sed(Linux系统默认)的简洁命令
直接一条命令完成「给倒数第二行加逗号」+「插入新行」两个操作:
sed -i -e '$-1 s/$/,/' -e '$i "city": "New York"' your_file.json
拆解一下各部分作用:
-i:直接修改原文件(无需生成临时文件)$-1 s/$/,/:精准选中倒数第二行,在该行末尾追加逗号$i "city": "New York":在最后一行(也就是})的前面插入你要添加的新行
方法二:兼容BSD sed(macOS系统)的通用写法
如果是macOS的sed,不支持$-1这种简写,咱们换个兼容性更强的写法:
sed -i '' -e 'N;$s/\(.*\)\n/\1,\n/;P;D' -e '$i "city": "New York"' your_file.json
这里的N;$s/\(.*\)\n/\1,\n/;P;D是通过读取两行内容,定位到最后两行,给倒数第二行末尾加逗号,适配所有sed版本。
验证效果
执行完命令后打开你的JSON文件,就能看到逗号乖乖待在倒数第二行的末尾,新行紧跟其后,完全符合JSON的语法规范~
内容的提问来源于stack exchange,提问作者djl
相关产品推荐
相关产品推荐

