Actualmente existen herramientas (dos2unix y unix2dos) que cumplen bien esta tarea, pero puede que necesitemos hacerlo nosotros mismos en caso de que el sistema en que estemos trabajando no posea estas herramientas, y no podamos instalarlas.

Lo que hay que saber

En los ficheros de texto bajo Unix (y sus descendientes), las líneas terminan con un carácter “salto de línea”, representado por “\n” (llamado Line Feed y abreviado LF, código ASCII = 0A).

En los ficheros de texto bajo Dos (y sus descendientes), las líneas terminan con un carácter “salto de línea”, precedido de una carácter retorno de carro, representado por «\r» (llamado Carriage Return y abreviado CR, código ASCII 0D). De este modo, cada línea de un fichero DOS termina en CRLF, es decir \r\n.

Conversión de DOS a UNIX

Tan solo hay que eliminar el carácter «\r» (retorno de carro) al final de la línea.
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$//' fichero

Nota:

En la versión GNU-sed (gsed 3.02.80 y superior), es posible utilizar la notación ASCII

sed 's/\x0D$//' fichero

Conversión de UNIX a DOS

Tan solo hay que hacer lo contrario al comando anterior (el carácter «^M» es ingresado de la misma manera (CTRL-V + CTRL-M)):

sed 's/$/^M/' fichero

Nota:

En la versión GNU-sed (gsed 3.02.80 y superior), podemos utilizar la notación simbólica «\r«:

sed 's/$/\r/' fichero

PD: El artículo original fue escrito por jipicy, contribuidor de CommentCaMarche

Por admin

Deja una respuesta

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
100% Free SEO Tools - Tool Kits PRO