Como uso o sed para alterar}, {“Foo” para} \ n {“Foo”?

0

Eu tenho um arquivo JSON de 55 MB com um grande número de objetos separados por },{ . Eu gostaria de ter um objeto por linha e me livrar da vírgula. Por um lado, eu gostaria de poder olhar o arquivo usando um editor, e a maioria dos editores não gosta de arquivos que tenham uma linha de 55MB. Eu usei o seguinte comando sed , mas ele grava um arquivo de comprimento zero. Como posso alcançar o resultado que quero?

cat INPUT | sed -n 's/},{"Foo"/}\n{"Foo"/g' > OUTPUT
    
por gknauth 10.02.2016 / 20:26

1 resposta

3

A bandeira -n de sed significa quieta. A impressão automática de linhas é entortada e você deve imprimir uma linha explicitamente com o comando p .

Use seu comando sem -n ou com p no final:

sed 's/},{"Foo"/}\n{"Foo"/g' file >output

Ou:

sed -n 's/},{"Foo"/}\n{"Foo"/gp' file >output
    
por 10.02.2016 / 20:36