Eu quero usar "sed" para inserir novas linhas (uma linha se transforma em centenas)

1

Eu quero o equivalente sed desta linha de vim:

:s/","/",^M"/g

O objetivo: pegar uma linha que contenha um bloco json massivo e dividi-la em linhas individuais.

Um exemplo do que eu quero trabalhar é link (procure pela função getFullEpisodes ()).

O que eu tentei:

519  sed -e 's/","/",\n"/g' < /tmp/url > /tmp/line-url

- não funcionou, basta colocar "n" no lugar certo.

521  sed -e 's/","/",\n"/g' < /tmp/url > /tmp/line-url

- não funcionou, coloque uma barra invertida seguida de n no lugar certo.

O "script" completo dos comandos vim que eu quero transformar em um script de shell:

:s/","/",^M"/g
:1,$!grep seo
:g,^.*/vid,s,,http://www.cartoonnetwork.com/vid
:g/"},{.*/s///
:$s,"}];,,
:wn
    
por Keybounce 03.08.2017 / 17:09

1 resposta

3

Parece que sua versão de sed não entende \n no RHS de s ///.

Você sempre pode fazer isso em uma linha de comando bash :

sed -e 's/","/",\
"/g' < /tmp/url > /tmp/line-url

Em uma linha de comando csh , você precisaria dobrar as barras invertidas. Observe que as barras invertidas posteriores não devem ser seguidas por outra coisa que não seja uma nova linha.

    
por 03.08.2017 / 17:24

Tags