GNU/Linux >> Tutoriales Linux >  >> Linux

DOS a Unix:comandos y ejemplos

Introducción

Los archivos creados en DOS/Windows usan retorno de carro (\r ) y avance de línea (\n ) para finales de línea. Sin embargo, los archivos en Unix/Linux solo usan avance de línea.

Por lo tanto, al transferir un archivo de un sistema a otro, asegúrese de convertir los archivos.

En este tutorial, aprenderá a transferir archivos de DOS a Unix y viceversa.

Conversión de archivos en Linux

Hay varias formas de transferir archivos para usar los finales de línea apropiados. Convierte los archivos usando:

  • dos2unix comando
  • unix2dos comando
  • sed comando (consulte el tutorial del comando sed de Linux)
  • tr comando
  • Vi/Vim editor de texto (consulte la hoja de trucos de los comandos de Vim)
  • perl comando de una línea

Opción 1:Conversión de DOS a UNIX con el comando dos2unix

La forma más sencilla de convertir saltos de línea en un archivo de texto es usar dos2unix herramienta.

Instale la herramienta ejecutando el comando:

sudo apt install dos2unix

o:

sudo dnf install dos2unix

Si descarga un archivo creado en DOS/Windows en su sistema Linux, puede convertirlo utilizando dos2unix comando:

dos2unix [file_name]

El comando convierte el archivo sin guardarlo en el formato original. Si desea guardar el archivo original, agregue -b atributo antes del nombre del archivo. Al hacerlo, se crea un archivo de copia de seguridad con el mismo nombre y el .bak extensión.

dos2unix -b [file_name]

Opción 2:Conversión de UNIX a DOS usando el comando unix2dos

Para convertir un archivo creado en un sistema Linux al formato DOS, ejecute el comando:

unix2dos [file_name]

Alternativamente, agregue el -b atributo para guardar el archivo original como copia de seguridad:

unix2dos -b [file_name]

Opción 3:usar el comando sed

También puede usar el sed (editor de flujo) comando para eliminar la línea de retorno de carro terminaciones La sintaxis del comando para hacerlo es:

sed 's/^M$//' [original_file_name]>[converted_file_name]

En lugar de simplemente escribir ^M , presione Ctrl+V seguido de Ctrl+M para introducir el símbolo de retorno de carro. Al usar el sed comando, especifique el nombre del archivo DOS [original_file_name] y cómo desea nombrar el archivo convertido [converted_file_name] .

Para cambiar el formato de archivo de Unix a DOS , usa el comando:

sed 's/$/^M/' [original_file_name]>[converted_file_name]

Opción 4:usar el comando tr

Otra forma de convertir un archivo al formato Unix es eliminar \r terminaciones de línea con tr dominio. El tr command es una utilidad de línea de comandos para traducir o eliminar caracteres.

Utilice el comando en el siguiente formato:

tr -d '\r' < [original_file_name]>[converted_file_name]

Opción 5:usar el editor de texto Vim

También puede eliminar los finales de línea de retorno de carro de los archivos en formato DOS utilizando el editor de texto Vi/Vim.
Abra el archivo en Vi/Vim:

vi [file_name]

Luego presione : y escriba el siguiente comando Vi/Vim (asegúrese de escribir Ctrl+V entonces Ctrl+m en lugar de ^m ):

:%s/^ m //g

Opción 6:Usar Perl One Liner

Por último, puede usar un comando de una sola línea de Perl para eliminar todos los \r terminaciones de línea Pearl on-liners son scripts que caben en una sola línea de código.

Para reemplazar todos los finales de retorno de carro y avance de línea con solo avances de línea:

1. Abra el archivo en el editor de texto Vi/Vim.

2. Presione : para solicitar la línea de comando.

3. Escriba el siguiente comando y presione Entrar:

perl -pi -e 's/\r\n/\n/g' [file_name]

Debería ver los cambios en el archivo de inmediato.

Ejemplo:convertir un archivo de muestra de DOS a formato Unix

Supongamos que descargó un archivo llamado sample-dos-file .

Al abrir el archivo con el editor de texto Vim/Vi, verá que después de cada línea que termina hay ^M (un retorno de carro).

Otra forma de ver que el archivo utiliza tanto el retorno de carro como el salto de línea para los finales de línea es ver el archivo en valores octales.

Para hacerlo, ejecute el comando:

od -bc sample-dos-file.txt

La salida muestra el contenido del archivo con sus valores octales, como en la imagen de abajo. Puede ver que cada final de línea está marcado con los valores octales 015 (\r) y 012 (\n) .

Ahora, para convertir el archivo y eliminar todas las terminaciones de retorno de carro, debe ejecutar el comando:

dos2unix sample-dos-file

Abra el mismo archivo en Vim/Vi. No incluye ninguna ^M símbolos que señalan el final de la línea.

Para confirmar que el archivo está en formato Unix, también puede abrir y ver el contenido en valores octales. La salida debe mostrar solo el 012 valores para \n .


Linux
  1. El comando AWK de Linux:ejemplos de sintaxis de uso de Linux y Unix

  2. 6 ejemplos de comandos mv para mover o renombrar archivos y directorios de Linux

  3. 10 ejemplos de comandos Cat para administrar archivos en Linux / UNIX

  4. Ejemplos de comandos ln en Linux

  5. ejemplos de comandos tail en UNIX/Linux

Comando WC de Linux con ejemplos

Los comandos alias y unalias explicados con ejemplos

50 comandos de corte de Linux simples y útiles en Unix con ejemplos

Comando AWK en Linux/Unix

Comando Unix LS:15 ejemplos prácticos

Ejemplos de manipulación de archivos usando los comandos de Unix Tac, Rev, Paste y Join