【发布时间】:2021-10-25 15:44:30
【问题描述】:
我正在尝试清理伪 json 文件的语法。该文件太大而无法在文本编辑器(20 gb)中打开,所以我必须通过命令行(运行 Arch linux)完成所有这些操作。我不知道该怎么做的一件事是替换 sed 中的换行符(GNU sed v. 4.8)
具体来说,我有以下形式的数据:
{
"id" : 1,
"value" : 2
}
{
"id" : 2,
"value" : 4
}
我需要在大括号后加一个逗号(但不是最后一个)。所以我希望输出看起来像:
{
"id" : 1,
"value" : 2
},
{
"id" : 2,
"value" : 4
}
理想情况下,我会在 sed 中执行此操作,但通过阅读此内容,sed 首先将文本展平,因此不清楚如何替换换行符。
理想情况下,我只运行sed 's/}\n{/},\n{/g' test.json 之类的东西,但这不起作用(也不能使用 \\n 代替 \n)。
我也尝试过 awk,但遇到了类似的问题,即无法用括号替换硬返回的组合。而且我可以用 tr 替换硬返回,但不能替换字符的组合。
关于如何解决这个问题的任何想法?
【问题讨论】: