我必须将文本文件转换为json格式。文本文件如下所示:
[ {
"rule": "soi",
"val": [
{
"abc": "OT01",
"del": 15
},
{
"abc": "OT11",
"del": 15
},
{
"abc": "OT20",
"del": 15
},
],
"ion": "OT"
},
{
"rule": "soi",
"val": [
{
"abc": "UF01",
"del": 15
},
{
"abc": "UF08",
"del": 15
},
],
"ion": "UF"
},
{
"rule": "soi",
"val": [
{
"abc": "UO01",
"del": 15
},
{
"abc": "UO08",
"del": 15
},
{
"abc": "UO09",
"del": 15
},
{
"abc": "UO10",
"del": 15
},
{
"abc": "UO20",
"del": 15
},
],
"ion": "UO"
} ]
所以基本上我想删除,
行之前的],
。使用awk
或sed
?
答案 0 :(得分:0)
这是一个简单的sed
脚本,可以执行您想要的操作:
#!/bin/sed -rf
:begin
$!{
N
bbegin
}
s/,(\s*\],)/\1/g
使用chmod
使其可执行,然后您可以运行它:./sedscript myfile
。请记住,sed
实际上不会修改文件,只是将修改后的文本输出到标准输出,因此您需要IO重定向来收集文件中的更改。
答案 1 :(得分:0)
如果您不关心换行符,间距和缩进,可以使用JavaScript interperter为您完成这项工作:
echo "print(JSON.stringify(" `cat jsonfile.txt` "));" | js | tee jsonfile.txt