AddThis Social Bookmark Button

Sabemos que en Windows y en los remanentes de DOS, los saltos de línea se codifican con dos bytes, estos es, los bytes ASCII 13 y 10 que significan Carry Return y Line Feed respectivamente.

En los sistemas tipo Unix, los saltos de línea se codifican con un solo byte, esto es, el byte ASCII 10, Line Feed. A veces cuando creamos documentos en Windows y los llevamos a aplicaciones que corren en sistemas Unix Like, tenemos problemas con los saltos de línea.

Afortunadamente los que han desarrollado las core utils de Linux, se han inventado herramientas como la siguiente para eliminar el caracter que nos sobra.

$ tr -d "\n" < documento.de.windows > documento.de.unix

OJO: Los simbolos ">" y "<" están redireccionando la entrada y la salida del comando tr.

Para mas información puede ver la página man del comando o incluír el argumento de ayuda:

$ man tr
$ tr --help

Utilizando Sed

Eliminar el carácter "\r" (retorno de carro) al final de la línea, también se puede hacer con el editor en línea sed . El carácter "\r" (retorno de carro) es representado simbólicamente por "^M", que se obtiene con la combinación de teclas siguientes: "CTRL-V" + "CTRL-M".

$ sed 's/^M$//' archivo.dos > archivo.unix

Fuente:
- juanfelipe.net: Eliminar caractéres de saltos de línea en documentos creados/editados con herramientas para Windows
- kioskea.net: Sed – Conversión de retornos de carro DOS (CRLF) a UNIX (LF)