Saltar al contenido

eliminar ^ M caracteres del archivo usando sed

Solución:

Usar tr:

tr -d '^M' < inputfile

(Tenga en cuenta que el ^M El carácter se puede ingresar usando Ctrl + VCtrl + M)


EDITAR: Como sugirió Glenn Jackman, si está usando bash, también podrías decir:

tr -d $'r' < inputfile

sigue siendo la misma línea:

sed -i 's/^M//g' file

cuando escribe el comando, por ^M tu escribes Ctrl + VCtrl + M

en realidad, si ya ha abierto el archivo en vim, puede hacerlo en vim:

:%s/^M//g

mismo, ^M tu escribes Ctrl-V Ctrl-M

Simplemente puede usar dos2unix, que está disponible en la mayoría de los sistemas Unix / Linux. Sin embargo, encontré que el siguiente comando sed es mejor, ya que eliminó ^ M donde dos2unix no pudo:

sed 's/r//g' < input.txt >  output.txt

Espero que ayude.

Nota: ^ M es en realidad un carácter de retorno de carro que se representa en el código como r Lo que hace dos2unix es probablemente equivalente a:

sed 's/rn/n/g' < input.txt >  output.txt

No elimina r cuando no es seguido inmediatamente por ny reemplaza ambos con solo n. Esto falla con ciertos tipos de archivos como el que acabo de probar.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *