[重複]ファイルから{と}の2文字の間のスペースのみを削除してください。

[重複]ファイルから{と}の2文字の間のスペースのみを削除してください。

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行にのみあります。マルチライン処理は不要です。

答え1

Ugly Perl 1行(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,,,に対して別の置換()を実行してその文字列を置き換えます。

関連情報