Eliminar el retorno de carro en Unix

Resuelto Aldur asked hace 15 años • 21 respuestas

¿ Cuál es la forma más sencilla de eliminar todos los retornos de carro \rde un archivo en Unix?

Aldur avatar Apr 29 '09 05:04 Aldur
Aceptado

Voy a suponer que te refieres a retornos de carro ( CR,, ) al final"\r" de las líneas en lugar de simplemente ciegamente dentro de un archivo (por lo que sé , es posible que los tengas en medio de las cadenas). Usando este archivo de prueba con a al final de la primera línea únicamente:0x0dCR

$ cat infile
hello
goodbye

$ cat infile | od -c
0000000   h   e   l   l   o  \r  \n   g   o   o   d   b   y   e  \n
0000017

dos2unixes el camino a seguir si está instalado en su sistema:

$ cat infile | dos2unix | od -c
0000000   h   e   l   l   o  \n   g   o   o   d   b   y   e  \n
0000016

Si por alguna razón dos2unixno está disponible para usted, sedlo hará:

$ cat infile | sed 's/\r$//' | od -c
0000000   h   e   l   l   o  \n   g   o   o   d   b   y   e  \n
0000016

Si por algún motivo sedno está disponible para usted, entonces edlo hará, de forma complicada:

$ echo ',s/\r\n/\n/
> w !cat
> Q' | ed infile 2>/dev/null | od -c
0000000   h   e   l   l   o  \n   g   o   o   d   b   y   e  \n
0000016

Si no tienes ninguna de esas herramientas instaladas en tu caja, tienes problemas mayores que intentar convertir archivos :-)

paxdiablo avatar Apr 29 '2009 02:04 paxdiablo
tr -d '\r' < infile > outfile

Ver tr(1)

Henrik Gustafsson avatar Apr 29 '2009 13:04 Henrik Gustafsson