domingo, 24 de junio de 2012

Eliminar caracter ^M de unix


Los caracteres ^M (control M) ocurre por el CR(carriage return, retorno de carro) de MS-DOS y el EOF (end of line, final de linea) de UNIX.

Como siempre, según la distribución de unix que tengamos tenemos varios métodos.

Editar el fichero con vi:

Poniendo estos parametros :%s/<Ctrl-V><Ctrl-M>// quitaremos los ^M. Sustituimos en todas las lineas (%s) y <Ctrl-V><Ctrl-M> para el caracter ^M y lo sustituimos por nada

:%s/<Ctrl-V><Ctrl-M>//

Editar el fichero con sed:

Sed es un editor de flujo para los ficheros, ya suele venir instalado por defecto en los unix. Con este comando solventamos el problema.

sed 's/<Ctrl-V><Ctrl-M>//' ficheroCR >ficheroEOF

Comandos unix2dos y dos2unix:

Estos comandos como indican convierten un fichero de un sistema a otro. Dependiendo de la distribución de unix puede que los tengas o no. Lo más seguro es que tengas que instalarlos y si conviertes archivos de pascuas a ramos, quizá no te sea necesario y puedas probar con las otras dos opciones.

unix2dos fichero 
Pasar el fichero con EOF a CR
dos2unix fichero
Pasan el fichero de CR a EOF.

No hay comentarios:

Publicar un comentario