Opa! Valeu, Cristiano. Funcionou perfeitamente. Só não entendi a expressão que remove as quebras. O que é a expressão :a;$!N; ? e o ta ?
sed ':a;$!N;s/\n/ /g;ta; s/ID§/\nID§/g' 2009/6/15 Cristiano Ferrari <[email protected]> > > > --- Em [email protected] <shell-script%40yahoogrupos.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?? > > > -- César Vianna ------------------- Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às unidades; os agenciamentos móveis aos sistemas. Gilles Deleuze & Felix Guattari [As partes desta mensagem que não continham texto foram removidas]
