2009/12/14 Eduardo <eduardo.pa...@gmail.com> > > Senhores, > > tenho o seguinte problema: > > Tenho uma frase... <quebra de linha> > 1- > > Toda vez que tiver uma frase e na linha seguinte aparecer um número seguido > de traço "-" tenho que remover a quebra de linha e deixar tudo na mesma > linha. > > Já tentei de tudo pelo SED mas não consegui. > > Antecipadamente obrigado.
Fiz algo parecido com isso esses dias. Era uma planilha, exportada para csv, mas em que uma dada coluna acabou contendo quebras de linha e corrompeu severamente o arquivo. No meu caso, todas as linhas válidas iniciavam com seis dígitos, dois espaços e um pipe. O código segue abaixo. Espero que ajude. # unifica as quebras de linha dos2unix -b $1 # troca todas as quebras de linha por um marcador awk '{printf("%s", $0 (NR==1 ? "" : "{LF}"))}' $1 > decisao.log.2 # quebra em arquivos menores para evitar truncamento #split -l 100000 decisao.log.2 ~decisao- # inclui uma quebra de linha sempre antes dos padrões de inicio sed 's/ [0-9][0-9][0-9][0-9][0-9][0-9] |/\n&/g' decisao.log.2 > decisao.log.3 # destroca o marcador sed 's/{LF}/ /g' decisao.log.3 > decisao.log.4 # remove linhas em branco sed '/^$/d' decisao.log.4 > decisao.txt # salvando os arquivos cp decisao.log.4 $1.conv # remove arquivos temporarios... rm -f decisao.log.[0-9] Atenciosamente. -- MARCELO DE F. ANDRADE Belem, PA, Amazonia, Brazil Linux User #221105