Eliminar el retorno de carro en Unix
¿ Cuál es la forma más sencilla de eliminar todos los retornos de carro \r
de un archivo en Unix?
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:0x0d
CR
$ 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
dos2unix
es 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 dos2unix
no está disponible para usted, sed
lo 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 sed
no está disponible para usted, entonces ed
lo 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 :-)
tr -d '\r' < infile > outfile
Ver tr(1)