[SP-pm] Remover 0x0D (aka carriage return) do final de uma linha

Blabos de Blebe blabos at gmail.com
Thu Jul 22 07:25:05 PDT 2010


Em um projeto aqui, eu resolvi temporariamente com:

sub _my_trim {
    my $line = shift;

    local $/ = "\r\n";      ## For win files
    chomp($line);
    local $/ = "\n";        ## For unix files
    chomp($line);

    return $line;
}

Mas não garanto que funcione para todos os casos, conforme wiki:

http://en.wikipedia.org/wiki/Newline

Abraços

P.S.: À época dessa solução, não foi feita uma pesquisa extensa,
provavelmente existem soluções mais robustas.



2010/7/22 Otavio Pereira <otavio.pereira em gmail.com>:
> Galera, é um problema recorrente que eu tenho. Uso linux e tenho que
> processar arquivos gerados no windows
>
> Leio uma linha de arquivo texto dou um chomp que elimina o 0x0a (aka
> newline), mas mantém o 0x0d (já tentei usar o chomp uma segunda vez também).
>
> Apelei para o chop mas não quero assumir que sempre vou ter o \r (como tb é
> conhecido o 0x0d) no fim da linha, ou mesmo ficar com ele quando a linha é
> vazia.
>
>> cat arquivo.txt|perl -e '$x =
>> <>;chomp($x);($a,$b,$c,$d)=split("\t",$x);print "$c$d\n";'|hd
>> >00000000  54 43 0d 0a                                       |TC..|
>>
>> cat arquivo.txt|perl -e '$x =
>> <>;chomp($x);chop($x);($a,$b,$c,$d)=split("\t",$x);print "$c$d\n";'|hd
>> >00000000  54 43 0a                                       |TC.|
>
>
> Aproveitando o e-mail porquê
>
> $x =~ s/0x0d//g;
>
> não funciona?
>
>
> Alguma sugestão?
>
> Obrigado,
> Otávio
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>


More information about the SaoPaulo-pm mailing list