Remova o espaço em branco apenas entre dois caracteres {e} no arquivo [duplicado]

2

Eu tenho arquivos com valores json:

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

Eu quero remover o espaço em branco de qualquer lugar entre { e } e nenhum outro lugar. Os valores não têm espaços no meu caso.

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

Como posso usar sed, awk ou perl ou qualquer ferramenta para conseguir isso?

Nota: Todos os valores estão em apenas uma linha. Não é necessário processamento de várias linhas.

    
por Ashish Negi 03.01.2018 / 08:53

1 resposta

2

Um-liner Ugly Perl (funciona no 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"}

A substituição externa ( s/// ) corresponde a cadeias rodeadas de chaves e as substitui fazendo outra substituição ( s,,, ) na cadeia combinada.

    
por 03.01.2018 / 09:24