A maneira mais rápida e mais básica de substituir “\ r \ n” por “\ n” em um arquivo?

9

Suponho que tr seja um método mais básico e, portanto, provavelmente uma maneira mais rápida de substituir coisas em um determinado arquivo.

No entanto, tr só pode substituir quantidades iguais de caracteres. significando ...

2 caracteres só podem ser substituídos por 2 caracteres, o que significa substituir

\r\n com \n está fora de questão por tr

é a próxima melhor opção sed ?

é sed a maneira mais básica e rápida de substituir \r\n por \n em um arquivo, dada a falta de recursos em tr?

gostaria de ter um exemplo, se possível.

    
por user73235 21.06.2014 / 21:06

2 respostas

17

Com sed , você pode fazer:

sed 's/\r$//'

Da mesma forma que acontece com tr , você só precisa remover \r :

tr -d '\r'

embora isso remova todas as instâncias de \r , não necessárias, seguidas de \n .

    
por 21.06.2014 / 21:19
3

OU use dos2unix

por exemplo:

$ echo -ne "1\r\n2" |  od -A n -t x1
 31 0d 0a 32
$ echo -ne "1\r\n2" | dos2unix | od -A n -t x1
 31 0a 32

podemos ver a substituição \r\n por \n

    
por 21.06.2014 / 21:25

Tags