0

我必须将文本文件转换为 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在 bash 中使用or有什么想法sed吗?

4

2 回答 2

0

这是一个简单的sed脚本,可以做你想做的事:

#!/bin/sed -rf
:begin
$!{
   N
   bbegin
}
s/,(\s*\],)/\1/g

使用chmod使其可执行,然后您可以运行它:./sedscript myfile. 请记住,sed实际上不会修改文件,只是将修改后的文本输出到标准输出,因此您需要 IO 重定向来收集文件中的更改。

于 2013-06-06T00:59:19.923 回答
0

如果您不关心换行符、间距和缩进,您可以使用 JavaScript interperter 为您完成这项工作:

echo "print(JSON.stringify(" `cat jsonfile.txt` "));" | js | tee jsonfile.txt
于 2013-06-06T01:04:49.287 回答