EOL: Como convertir un fichero de texto tipo DOS a UNIX y viceversa

Seleccionar DOS, Unix menú del editor de texto

Con este sencillo tutorial, solucionamos un pequeño percance que seguramente te habrá pasado. Muchas veces nos habrá pasado que al abrir un fichero .txt en Linux o Windows, el texto se ve modificado de como lo habíamos editado en un principio. Lo que pasa es que las líneas se nos han unido y no aparecen los espacios. Esto se debe a que el formato de fichero de texto tipo UNIX difiere con el tipo DOS en cuanto al carácter de fin-de-linea (EOL) que emplean.

Para sistemas UNIX, el carácter es un “line feed/newline” o LF y que corresponde a \n, si programáis os sonará. Mientras que en Windows se hereda el sistema empleado en el antiguo DOS, es decir, un “carriage return” seguido de un “line feed/newline” (\r\n). Si por ejemplo hemos editado el fichero en Linux y lo estamos abriendo con Windows (y el formato en el que lo hemos guardado no es el adecuado), entonces vendrá el dichoso problema de tener todo el texto pegado sin espacio o salto de líenas.

En Linux es sencillo convertir de un formato a otro sin instalar nada en nuestro sistema, basta con usar estos comandos:

  • DE DOS A UNIX:

Emplearemos el comando tr, seguido del parámetro -d y el carácter EOL oportuno. Además emplearemos los famosos “pipes” para operarar con el archivo de texto DOS (“nombre_archivo”) y el que queremos generar convertido en formato UNIX (“nombre_fichero”). Por supuesto debemos emplear previamente el comando cd para situarnos en la carpeta donde se encuentra el archivo a convertir o desde la interfaz gráfica pasar el archivo a /Home (por defecto donde se situa el prompt):

tr -d '\n' < nombre_archivo > nombre_fichero</p>
  • DE UNIX A DOS:

Ahora usaremos el comando sed para transformar un fichero Unix en un tipo DOS. Para ello usaremos la siguiente sintaxis, sustituyendo el nombre de los archivos por el del archivo a convertir. Quiero hacer una aclaración, siempre que escribo fichero me refiero a tipo Unix y cuando pongo archivo a los tipo Windows/DOS.

sed 's/$/\r/' nombre_fichero > nombre_archivo</p>

De todas formas, en los editores de texto modernos, ya nos da la opción de “Guardar como” en el formato que deseemos sin tener que hacerlo desde el terminal. Pero siempre está bien conocer más a fondo la línea de comandos Linux. Otra opción es usar dos herramientas destinadas para este fin, dos2unix y unix2dos, pero en muchas distribuciones no vienen instaladas por defecto y habría que instalarlas…


Deja tu comentario

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

*

*

  1. Responsable de los datos: AB Internet Networks 2008 SL
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   blahblah1233445 dijo

    La setencia correcta es
    tr -d ‘r’ nombre_fichero