¿La forma más rápida y básica de reemplazar "\ r \ n" con "\ n" en un archivo?

11

Supongo que tres un método más básico y, por lo tanto, probablemente una forma más rápida de reemplazar cosas dentro de un archivo determinado.

Sin embargo, tr solo puede reemplazar cantidades iguales de caracteres. sentido...

2 caracteres solo se pueden reemplazar con 2 caracteres, lo que significa reemplazar

\r\ncon \nestá fuera de la cuestión a través detr

Cuál es la siguiente mejor opción sed?

es sed, el más básico y más rápida de reemplazar \r\ncon \nun archivo dado la falta de capacidades en tr?

quisiera un ejemplo si es posible.

usuario73235
fuente
¿Qué significa exactamente "Most Core"?
Keith Thompson

Respuestas:

23

Con sed, puedes hacer:

sed 's/\r$//'

De la misma manera puede hacerlo tr, solo tiene que eliminar \r:

tr -d '\r'

aunque esto eliminará todas las instancias de \r, no necesariamente seguido de \n.

Cuonglm
fuente
2
Estos dos no son idénticos. El primero con reemplazar '\ r \ n' con '\ n' (efectivamente), pero el segundo eliminará todos '\ r' donde aparezcan. Es raro que el retorno de carro aparezca en un archivo de texto, que no sea al final de la línea, pero puede suceder.
enms.
4

O usar dos2unix

por ejemplo:

$ 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 reemplazar \r\ncon\n

بارپابابا
fuente
Este no es un programa en la lista de OP, pero en mi opinión, la forma más limpia de hacer el trabajo. Personalmente lo uso cada vez que necesito esa conversión.
Febrero