El caracter ^M en archivos Unix y Linux
Con demasiada frecuencia ocurre que importamos un texto de MS-DOS a
UNIX, y al editarlo con el vi (por ejemplo), sale lleno de "^M" al
final de todas las líneas. Esto de los ^M ocurre porque el delimitador de
línea de los ficheros de texto en DOS es CR-LF (carriage
return-linefeed, o sea, retorno de carro y salto de línea), y en UNIX
son simplemente LF. Así, muchas herramientas de UNIX (al menos por
defecto), buscan como delimitador de línea el LF, así que al
final de cada línea hay un caracter extraño (el CR).
Esto, en vi, se puede arreglar fácilmente con la orden
Esto, en vi, se puede arreglar fácilmente con la orden
:%s/<Ctrl-V><Ctrl-M>//g
NOTA. Con esto me refiero a abrir el archivo con vi y ejecutar el comando anterior.
Descripción del comando: El
"%" sirve para que se sustituya en todas las líneas, y no
sólo en la actual, la "s" para que se realice una
sustitución, el Ctrl-V Ctrl-M es necesario para que el vi no se crea
que estamos pulsando un ENTER (Ctrl-V sirve para insertar literales), y, por
supuesto, se sustituye por nada, así que entre la segunda y la
tercera barras no ponemos nada.
Por si no te gusta el vi, puedes cambiar el formato de los ficheros de texto desde la línea de órdenes, escribiendo:
sed 's/<Ctrl-V><Ctrl-M>//' fichero-CRLF >fichero-LF
Si no conocías el sed (lo más probable, porque si lo
conocieras ya se te habría ocurrido a ti el truco), es una herramienta
bastante versátil de proceso de texto (no tanto como el perl),
y no muy complicada de utilizar.
No hay comentarios:
Publicar un comentario