On Mon, Sep 29, 2008 at 01:22:47PM -0300, Ricardo Vendramini wrote: > > Ola > > Esta é minha primeira participacao nesta lista, e gostaria de > aperfeicoar um pequeno script que fiz para limpar um arquivo texto. > > Usando o sed, ele remove espacos em branco e tabs do final de cada > linha de texto. Tambem remove o caracter 0x0D dos finais de linha, > convertendo a quebra de linha do padrao DOS/Win (0x0D,0x0A) para padrao > Unix (0x0A). > > No script, dentro dos colchetes [ tc] tem um espaco em branco, um TAB > (0x09) e um LF (0x0D), que substitui por 'tc' ja q esses caracteres nao > daria pra enviar por email diretamente (dá pra substitui-los por codigos > ASCII?) > > Os ls antes e depois é para ver o tamanho do arquivo antes e depois da > limpeza, para comparacao. > > > #!/bin/bash > ls -l $1 > cat $1 |sed 's/[ tc]*$//g' >$1 warning: aqui ele pega o conteúdo de $1 e joga dentro dele mesmo!
substitua essa linha por: sed -i 's/[ \t\r]$//' $1 e faça um teste > ls -l $1 > > Mas ha alguma falha que nao consegui descobrir, as vezes quando executo > o script em algum aquivo texto, o resultado é um arquivo vazio (0 bytes > de tamanho), perdendo todo seu conteudo. > > Alguem enxerga algum erro ou tem alguma sugestao pra melhora-lo? > > Abraco > > Ricardo Vendramini > > > > > ------------------------------------
