利用sed处理json格式文件

来源:互联网 发布:西交大网络圈存 编辑:程序博客网 时间:2024/06/05 13:33

应用场景:

我有一堆cfg文件中均有一个键值对:

“db_name” : "db1"

我想把涉及到的cfg文件里面的db1换成db2,于是使用sed命令:

sed -i 's/"db_name" :.*$/"db_name" : "db2"/' *.cfg 

换完之后发现一个问题:

有些cfg文件中这个键值对出现在文件最后,因此末尾没有逗号,为:

“db_name” : "db1"

但是另外一些cfg文件中这个键值对出现在中间,因此末尾有逗号,为:

“db_name” : "db1",

如果用上面的sed命令那么替换完之后所有的键值对末尾都没有了逗号,就不符合json文件格式了,于是改进sed命令如下:

sed -i 's/"db_name" :[^,]*/"db_name" : "db2"/' *.cfg

这样替换完之后,原来后面有逗号的还是有,原来没有逗号的还是没有,OK

原创粉丝点击