仅删除文件中两个字符 { 和 } 之间的空格

仅删除文件中两个字符 { 和 } 之间的空格

我有包含 json 值的文件:

abc={"adf": "def",   "abc2":"def2", "abc3" : "def3" }
abc4= 1
abc = {hello : world, hello:"a"}

我想从中间的任何地方删除空白 {,而}不是任何其他地方。在我的例子中,值没有任何空格。

abc={"adf":"def","abc2":"def2","abc3":"def3"}
abc4= 1
abc = {hello:world,hello:"a"}

我如何使用 sed、awk 或 perl 或任何工具来实现此目的?

注意:所有值仅在一行中。不需要多行处理。

答案1

丑陋的 Perl 单行代码(适用于 Perl v5.24.1):

$ perl -pe 's/{.*?}/ $& =~ s, ,,gr /eg'  input
abc={"adf":"def","abc2":"def2","abc3":"def3"}
abc4= 1
abc = {hello:world,hello:"a"}

外部替换 ( s///) 匹配用大括号括起来的字符串,并通过s,,,对匹配的字符串执行另一个替换 ( ) 来替换它们。

相关内容