--- Em shell-script@yahoogrupos.com.br, César Vianna <cesar.via...@...> escreveu
>
> Pessoal, tenho um arquivo com umas 30mil linhas com o seguinte padrão
> 
> ID§CONTEÚDO ALEATÓRIO
> CONTEÚDO ALEATÓRIO
> CONTEÚDO ALEATÓRIO§FROMCONTEÚDO ALEATÓRIO
> CONTEÚDO ALEATÓRIO
> ID§CONTEÚDO ALEATÓRIO
> CONTEÚDO ALEATÓRIO
> CONTEÚDO ALEATÓRIO§FROMCONTEÚDO ALEATÓRIO
> 
> Preciso remover as quebras de linhas entre os valores ID§ - O valor ID§ vem
> sempre no inicio da linha e marca o inicio de um bloco de informações.
> 
> Tentei com o sed abaixo:
> 
> sed 's/[^ID§]\(.*\)$/\1/g' from-to-status.log   #Pesquisar tudo que não
> começa com ID§. Desse resultado, remover a quebra de linha. Mas, o resultado
> foi igual ao arquivo original.
> 



César, veja se é isso que você quer (colei no pastebin para facilitar a leitura 
do resultado):

http://pastebin.com/fd78d60e

Se for isso, a explicação da solução é a seguinte:

O comando ':a;$!N;s/\n/ /g;ta' remove todas as quebras de linha do arquivo. Em 
seguida, o comando 's/ID§/\nID§/g' substitui a string ID§ pela mesma string 
ID§, precedida de uma quebra de linha (\n).

É isto que você queria fazer??





Responder a