Awk

僅刪除文件中兩個字元 { 和 } 之間的空格

  • January 3, 2018

我有 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 或任何工具來實現這一點?

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

醜陋的 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,,,

引用自:https://unix.stackexchange.com/questions/414455