使用sed命令从Json File中删除对象,并在同一文件中显示更改

时间:2018-04-19 15:15:22

标签: linux shell sed

我有一个json文件,需要删除json对象。有没有办法只通过sed命令删除它。我的示例文件如下:

define({
    name: 'ABC',
    defaultApp: 'abc',
    plugin: 'plugin',
    loadOverride: 'load.json',
    logger: {
        url: '/rest/service/log',
        sendFrequency: 5000,
        autoLog: false
    },
});

在这个文件中,我想通过sed命令从文件中删除logger对象。

预期产出:

define({
    name: 'ABC',
    defaultApp: 'abc',
    plugin: 'plugin',
    loadOverride: 'load.json',
});

我尝试使用此命令,但它无法正常工作。你能告诉我这里我做错了什么吗?

sed -i '/\"logger\"/,/}/ d; /^$/d' ./config1.js

感谢。

1 个答案:

答案 0 :(得分:0)

您自己的sed脚本与起始地址不匹配,因为您在logger周围有双引号,而输入文件中没有此类模式。所以模式不匹配。如果修改了缩进,您可以使用:

sed 's/^    logger/,/^    },/d;`