Convertir archivo de DOS a UNIX: sed, salto de línea...

Convertir archivo de DOS a UNIX: sed, salto de línea...

Actualmente, existen herramientas como dos2unix y unix2dos que convierten ficheros de formato DOS a UNIX (y viceversa). No obstante, en ocasiones tenemos que realizar la conversión nosotros mismos porque el sistema con el que estamos trabajando no permite instalarlas. En este artículo te explicamos cómo hacerlo.

¿Qué hay que tener en cuenta?

  1. En los ficheros de texto en UNIX, las líneas terminan con un carácter “salto de línea”, representado por “\n” (llamado Line Feed y abreviado LF).
  2. En los ficheros de texto DOS, las líneas terminan con un carácter “salto de línea”, precedido de un carácter de “retorno de carro”, representado por "\r" (llamado Carriage Return y abreviado CR). Por lo tanto, cada línea de un fichero DOS termina en CRLF, es decir \r\n.

¿Cómo cambiar formato de DOS a UNIX?

  • Tan solo hay que eliminar el “retorno de carro”, “\r", al final de la línea. Este se encuentra representado simbólicamente por "^M" y se obtiene mediante la combinación de las siguientes teclas: "CTRL-V" + "CTRL-M".
sed 's/^M$//' fichero
  • En la versión GNU-sed (gsed 3.02.80 y superior), es posible utilizar la notación ASCII:
sed 's/\x0D$//' fichero

¿Cómo convertir un fichero UNIX a DOS?

  • En este caso solo hay que hacer lo contrario al comando anterior (el carácter "^M" es utilizado de la misma manera, CTRL-V + CTRL-M):
sed 's/$/^M/' fichero
  • En la versión GNU-sed (gsed 3.02.80 y superior), podemos utilizar la notación simbólica "\r":
sed 's/$/\r/' fichero

¿tIENES OTRAS PREGUNTAS SOBRE LINUX? ¡CONSULTA NUESTRO FORO DE DISCUSIÓN! 

Linux