Usted puede preguntarse, ¿cuál es el propósito de este artículo? ¿Por qué convertir un archivo de Windows para adaptarlo a un entorno UNIX como Linux? ¿No es Linux todopoderoso? Las capacidades excepcionales del sistema operativo Linux no lo salvan de la visualización incompatible de archivos transferidos desde otras plataformas informáticas.
El hecho de que pueda abrir un archivo en un entorno Linux no implica que tenga control total sobre cómo deben mostrarse los textos del archivo.
[ También te puede interesar:Cómo encontrar archivos que contengan una cadena de texto específica en Linux ]
Encontrará casos en los que los textos o las palabras de un archivo se amontonan en una sola línea gigante. En otros casos, es posible que las pantallas de los mismos archivos de texto no tengan saltos de línea ni espacios entre oraciones.
Un atributo común de los archivos de Windows sin formato abiertos en sistemas UNIX como Linux es la inevitable visualización al final de la línea de ^M
o Ctrl-M
personajes.
Esta guía de artículos busca lograr un objetivo; la conversión de un archivo de Windows a un archivo UNIX sin cambiar el formato del archivo resultante.
Formas de convertir archivos de Windows a formato Unix en Linux
Podemos lograr el objetivo de nuestro artículo a través de varios métodos. Estos métodos nos permiten convertir un archivo de Windows en un archivo UNIX y aún conservar el formato original del archivo de Windows.
Convertir archivos de Windows a Unix usando el comando dos2unix
Dependiendo de la distribución de su sistema operativo Linux, puede instalar el dos2unix herramienta de línea de comandos desde uno de los siguientes comandos:
$ sudo apt-get install dos2unix [On Debian, Ubuntu and Mint] $ sudo yum install dos2unix [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux] $ sudo emerge -a sys-apps/dos2unix [On Gentoo Linux] $ sudo pacman -S dos2unix [On Arch Linux] $ sudo zypper install dos2unix [On OpenSUSE]
La sintaxis del comando para usar la herramienta dos2unix es la siguiente:
$ dos2unix Your_Windows_File Final_Unix_File
Entonces, si tiene un archivo de muestra creado en un sistema informático Windows y desea abrirlo en un sistema informático Linux sin comprometer su formato, debe usar el siguiente comando.
$ dos2unix windows_readme.txt unix_readme.txt
Antes de ejecutar el comando anterior, debemos crear un unix_readme.txt en blanco. archivo que acomodará el archivo convertido.
$ touch unix_readme.txt $ dos2unix windows_readme.txt unix_readme.txt
Según la captura de pantalla, su archivo de Windows convertido debería adaptarse cómodamente a cualquier entorno Unix.
Uso del comando AWK:convertir archivos de Windows a Unix
El awk El comando está preinstalado en todos los sistemas informáticos UNIX completos modernos como Linux. Para convertir nuestro archivo de muestra de Windows, implementaríamos el awk comando de la siguiente manera:
$ awk '{ sub("\r$", ""); print }' windows_readme.txt > new_unix_readme.txt
Como habrás notado, con el awk comando, no necesitamos un archivo de Linux en blanco preexistente para acomodar el archivo de Windows convertido. El comando crea y completa la versión del archivo Unix del archivo de Windows por sí solo.
Uso del comando tr:convertir archivos de Windows a Unix
Si la mayoría de los archivos de Windows que abre en su entorno Linux tienen Ctrl-Z
innecesarios y caracteres de retorno de carro, entonces apreciará lo que el tr comando tiene para ofrecer.
Suponiendo que nuestro archivo de muestra de Windows sea víctima de tales caracteres, eliminarlos requerirá implementar el siguiente comando:
$ tr -d '\15\32' < windows_readme.txt > polished_unix_readme.txt
La naturaleza inherente del tr El comando también genera el archivo UNIX resultante sin necesidad de crearlo previamente.
La flexibilidad de los tres enfoques analizados para convertir cualquier archivo editable de Windows al formato de archivo UNIX debería evitarle los dolores de cabeza de tener que editar manualmente los archivos de Windows descargados o transferidos para eliminar caracteres y espacios no deseados en un entorno Linux.