dos2unix(1) | 2017-10-10 | dos2unix(1) |
dos2unix - Convertidor de archivos de texto de formato DOS/Mac a Unix y viceversa
dos2unix [parámetros] [ARCHIVO ...] [-n ARCHIVO_DE_ENTRADA ARCHIVO_DE_SALIDA ...] unix2dos [parámetros] [ARCHIVO ...] [-n ARCHIVO_DE_ENTRADA ARCHIVO_DE_SALIDA ...]
El paquete Dos2unix incluye las herramientas "dos2unix" y "unix2dos" para convertir archivos de texto plano en formato DOS o Mac a formato Unix y viceversa.
En archivos de texto DOS/Windows, un salto de línea, también conocido como nueva línea, es una combinación de dos caracteres: un retorno de carro (CR) seguido por un salto de línea (LF). En archivos de texto Unix, un salto de línea es solamente un carácter: el salto de línea (LF). En archivos de texto Mac, antes de Mac OS X, un salto de línea era sólo un carácter retorno de carro (CR). Actualmente, Mac OS usa el estilo Unix de saltos de línea (LF).
Además de saltos de línea, Dos2unix puede también convertir la codificación de archivos. Unas cuantas páginas de códigos DOS pueden ser convertidas a Unix Latin-1. Y archivos Unicode de Windows (UTF-16) pueden ser convertidos a archivos Unicode de Unix (UTF-8).
Los archivos binarios son ignorados automáticamente, a menos que se fuerce su conversión.
Los archivos no regulares, tales como directorios y FIFO, son ignorados automáticamente.
Los enlaces simbólicos y sus destinos no son modificados por defecto. Los enlaces simbólicos pueden opcionalmente ser reemplazados, o la salida puede ser escrita al destino simbólico del enlace. En Windows no está soportada la escritura a enlaces simbólicos.
Dos2unix was modelled after dos2unix under SunOS/Solaris. There is one important difference with the original SunOS/Solaris version. This version does by default in-place conversion (old file mode), while the original SunOS/Solaris version only supports paired conversion (new file mode). See also options "-o" and "-n". Another difference is that the SunOS/Solaris version uses by default iso mode conversion while this version uses by default ascii mode conversion.
dos2unix -- -foo
O en modo de archivo nuevo:
dos2unix -n -- -foo out.txt
When this option is used, the conversion will not be aborted when the user and/or group ownership of the original file can't be preserved in old file mode. Conversion will continue and the converted file will get the same new ownership as if it was converted in new file mode. See also options "-o" and "-n". This option is only available if dos2unix has support for preserving the user and group ownership of files.
This option is only available in dos2unix for Windows with Unicode file name support. This option has no effect on the actual file names read and written, only on how they are displayed.
There are several methods for displaying text in a Windows console based on the encoding of the text. They all have their own advantages and disadvantages.
The disadvantage of ansi is that international file names with characters not inside the system default code page are not displayed properly. You will see a question mark, or a wrong symbol instead. When you don't work with foreign file names this method is OK.
When you use the ConEmu console all text is displayed properly, because ConEmu automatically selects a good font.
The disadvantage of unicode is that it is not compatible with ASCII. The output is not easy to handle when you redirect it to another program.
When method "unicodebom" is used the Unicode text will be preceded with a BOM (Byte Order Mark). A BOM is required for correct redirection or piping in PowerShell.
The disadvantage is that when you use the default raster font all non-ASCII characters are displayed wrong. Not only unicode file names, but also translated messages become unreadable. On Windows configured for an East-Asian region you may see a lot of flickering of the console when the messages are displayed.
In a ConEmu console the utf8 encoding method works well.
When method "utf8bom" is used the UTF-8 text will be preceded with a BOM (Byte Order Mark). A BOM is required for correct redirection or piping in PowerShell.
The default encoding can be changed with environment variable DOS2UNIX_DISPLAY_ENC by setting it to "unicode", "unicodebom", "utf8", or "utf8bom".
Se muestra la siguiente información, en este orden: número de saltos de línea DOS, número de saltos de línea Unix, número de saltos de línea Mac, Marca de Orden de Byte, de texto o binario, nombre del archivo.
Ejemplo de salida:
6 0 0 no_bom text dos.txt 0 6 0 no_bom text unix.txt 0 0 6 no_bom text mac.txt 6 6 6 no_bom text mixed.txt 50 0 0 UTF-16LE text utf16le.txt 0 50 0 no_bom text utf8unix.txt 50 0 0 UTF-8 text utf8dos.txt 2 418 219 no_bom binary dos2unix.exe
Note that sometimes a binary file can be mistaken for a text file. See also option "-s".
Se pueden utilizar marcas extras opcionales para modificar la salida. Se pueden añadir una o más marcas.
Con la marca "c" dos2unix sólo mostrará los archivos que contengan saltos de línea DOS, unix2dos sólo mostrará los nombres de archivo que tengan saltos de línea Unix.
Ejemplos:
Muestra información para todos los archivos *.txt:
dos2unix -i *.txt
Muestra sólo el número de saltos de línea de DOS y de Unix:
dos2unix -idu *.txt
Muestra sólo la Marca de Orden de Byte.
dos2unix --info=b *.txt
Muestra los archivos que tienen saltos de línea DOS:
dos2unix -ic *.txt
Muestra los archivos que tienen saltos de línea Unix:
unix2dos -ic *.txt
Convert only files that have DOS line breaks and leave the other files untouched:
dos2unix -ic0 *.txt | xargs -0 dos2unix
Find text files that have DOS line breaks:
find -name '*.txt' -print0 | xargs -0 dos2unix -ic
dos2unix: Sólo los saltos de línea DOS son cambiados por dos saltos de línea Unix. En modo Mac sólo los saltos de línea Mac son cambiados por dos saltos de línea Unix.
unix2dos: Sólo los saltos de línea Unix son cambiados por dos saltos de línea DOS. En modo Mac los saltos de línea Unix son cambiados por dos saltos de línea Mac.
Cuando el archivo de entrada es UTF-16 y se usa la opción "-u", se escribirá un BOM UTF-16.
No utilice esta opción cuando la codificación de salida sea distinta de UTF-8, UTF-16 o GB18030. Véase también la sección UNICODE.
La persona que inicia la conversión en el modo de archivo nuevo (emparejado) será el propietario del archivo convertido. Los permisos de lectura/escritura del archivo nuevo serán los permisos del archivo original menos la umask(1) de la persona que ejecute la conversión.
Abort conversion when the user and/or group ownership of the original file can't be preserved in old file mode. See also options "-o" and "-n". This option is only available if dos2unix has support for preserving the user and group ownership of files.
En modo de archivo antiguo (in situ), el archivo convertido tiene el mismo propietario, grupo y permisos de lectura/escritura que el archivo original. Lo mismo aplica cuando el archivo es convertido por otro usuario que tiene permiso de lectura en el archivo (p.e. usuario root). La conversión será abortada cuando no sea posible preservar los valores originales. Cambiar el propietario implicaría que el propietario original ya no podrá leer el archivo. Cambiar el grupo podría ser un riesgo de seguridad, ya que el archivo podría ser accesible a personas inadecuadas. La preservación del propietario, grupo, y permisos de lectura/escritura sólo está soportada bajo Unix.
To check if dos2unix has support for preserving the user and group ownership of files type "dos2unix -V".
Conversion is always done via a temporary file. When an error occurs halfway the conversion, the temporary file is deleted and the original file stays intact. When the conversion is successful, the original file is replaced with the temporary file. You may have write permission on the original file, but no permission to put the same user and/or group ownership properties on the temporary file as the original file has. This means you are not able to preserve the user and/or group ownership of the original file. In this case you can use option "--allow-chown" to continue with the conversion:
dos2unix --allow-chown foo.txt
Another option is to use new file mode:
dos2unix -n foo.txt foo.txt
The advantage of the "--allow-chown" option is that you can use wildcards, and the ownership properties will be preserved when possible.
The skipping of binary files is done to avoid accidental mistakes. Be aware that the detection of binary files is not 100% foolproof. Input files are scanned for binary symbols which are typically not found in text files. It is possible that a binary file contains only normal text characters. Such a binary file will mistakenly be seen as a text file.
Cuando existe una Marca de Orden de Bytes (BOM) en el archivo de entrada, la BOM tiene prioridad sobre esta opción.
Cuando se hace una suposición incorrecta (el archivo de entrada no estaba en formato UTF-16LE) y la conversión tiene éxito, obtendrá un archivo UTF-8 de salida con el texto erróneo. La conversión errónea puede deshacerse con iconv(1) convirtiendo el archivo UTF-8 de salida de vuelta a UTF-16LE. Esto restaurará el archivo original.
El supuesto de UTF-16LE funciona como un modo de conversión. Al cambiar al modo por defecto ascii el supuesto UTF-16LE es deshabilitado.
Esta opción funciona igual que la opción "-ul".
En modo normal los saltos de línea son convertidos de DOS a Unix y viceversa. Los saltos de línea Mac no son convertidos.
En modo Mac los saltos de línea son convertidos de Mac a Unix y viceversa. Los saltos de línea DOS no son modificados.
Para ejecutar en modo Mac use el modificador "-c mac" o use los comandos "mac2unix" o "unix2mac".
Aunque el nombre de este modo es ASCII, que es un estándar de 7 bits, éste emplea 8 bits. Siempre use este modo cuando convierta archivos Unicode UTF-8.
Cuando sólo se emplea el parámetro "-iso", dos2unix intentará determinar la página de códigos activa. Cuando esto no sea posible, dos2unix utilizará la página de códigos 437 por defecto, la cual es empleada principalmente en EE. UU. Para forzar una página de códigos específica emplee los parámetros "-437" (EE. UU.), "-850" (Europa Occidental), "-860" (Portugués), "-863" (Francocanadiense), o "-865" (Nórdico). La página de códigos Windows 1252 (Europa Occidental) también está soportada con el parámetro "-1252". Para acceder a otras páginas de códigos use dos2unix en combinación con iconv(1). Iconv puede convertir entre una larga lista de codificaciones de caracteres.
No use la conversión ISO en archivos de texto Unicode. Esto corrompería los archivos codificados como UTF-8.
Algunos ejemplos:
Convierte de la página de códigos por defecto de DOS a Latín-1 de Unix:
dos2unix -iso -n in.txt out.txt
Convierte de DOS CP850 a Unix Latín-1:
dos2unix -850 -n in.txt out.txt
Convierte de Windows CP1252 a Unix Latin-1:
dos2unix -1252 -n in.txt out.txt
Convierte de Windows CP1252 a Unix UTF-8 (Unicode).
iconv -f CP1252 -t UTF-8 in.txt | dos2unix > out.txt
Convierte de Unix Latin-1 a la página de códigos por defecto de DOS:
unix2dos -iso -n in.txt out.txt
Convierte de Unix Latin-1 a DOS CP850:
unix2dos -850 -n in.txt out.txt
Convierte de Unix Latin-1 a Windows CP1252.
unix2dos -1252 -n in.txt out.txt
Convierte de Unix UTF-8 (Unicode) a Windows CP1252:
unix2dos < in.txt | iconv -f UTF-8 -t CP1252 > out.txt
Véase también <http://czyborra.com/charsets/codepages.html> y <http://czyborra.com/charsets/iso8859.html>.
Existen diferentes codificaciones Unicode. En Unix y Linux los archivos Unicode son codificados comúnmente en UTF-8. En Windows los archivos de texto Unicode pueden estar codificados en UTF-8, UTF-16, o UTF-16 big endian, pero en general son codificados en formato UTF-16.
Los archivos de texto Unicode pueden tener saltos de línea DOS, Unix o Mac, como cualquier archivo de texto.
Todas las versiones de dos2unix y unix2dos pueden convertir archivos codificados como UTF-8, debido a que UTF-8 fue diseñado para retro-compatibilidad con ASCII.
Dos2unix y unix2dos con soporte Unicode UTF-16, pueden leer archivos de texto codificados como UTF-16 little y big endian. Para ver si dos2unix fue compilado con soporte UTF-16 escriba "dos2unix -V".
En Unix/Linux los archivos codificados con UTF-16 se convierten a la codificación de caracteres local. Use el comando locale(1) para averiguar la codificación de caracteres local. Cuando no se puede hacer la conversión se obtendrá un error de conversión y se omitirá el archivo.
En Windows los archivos UTF-16 se convierten por defecto a UTF-8. Los archivos de texto forrajeados con UTF-8 están soportados tanto en Windows como en Unix/Linux.
Las codificaciones UTF-16 y UTF-8 son totalmente compatibles, no se perderá ningún texto en la conversión. Cuando ocurre un error de conversión de UTF-16 a UTF-8, por ejemplo cuando el archivo de entrada UTF-16 contiene un error, se omitirá el archivo.
Cuando se usa la opción "-u", el archivo de salida se escribirá en la misma codificación UTF-16 que el archivo de entrada. La opción "-u" previene la conversión a UTF-8.
Dos2unix y unix2dos no tienen la opción de convertir archivos UTF-8 a UTF-16.
La conversión en modos ISO y 7-bit no funciona en archivos UTF-16.
En Windows los archivos de texto Unicode típicamente tienen una Marca de Orden de Bytes (BOM), debido a que muchos programas de Windows (incluyendo el Bloc de Notas) añaden una BOM por defecto. Véase también <http://es.wikipedia.org/wiki/Marca_de_orden_de_bytes_%28BOM%29>.
En Unix los archivos Unicode no suelen tener BOM. Se supone que los archivos de texto son codificados en la codificación local de caracteres.
Dos2unix sólo puede detectar si un archivo está en formato UTF-16 si el archivo tiene una BOM. Cuando un archivo UTF-16 no tiene una BOM, dos2unix tratará el archivo como un archivo binario.
Use la opción "-ul" o "-ub" para convertir un archivo UTF-16 sin BOM.
Dos2Unix, por defecto, no escribe BOM en el archivo de salida. Con la opción "-b" Dos2unix escribe el BOM cuando el archivo de entrada tiene BOM.
Unix2dos escribe BOM en el archivo de salida cuando el archivo de entrada tiene BOM. Use la opción "-r" para eliminar la BOM.
Dos2unix y unix2dos escriben siempre BOM cuando se usa la opción "-m".
Dos2unix has optional support for reading and writing Unicode file names in the Windows Command Prompt. That means that dos2unix can open files that have characters in the name that are not part of the default system ANSI code page. To see if dos2unix for Windows was built with Unicode file name support type "dos2unix -V".
There are some issues with displaying Unicode file names in a Windows console. See option "-D", "--display-enc". The file names may be displayed wrongly in the console, but the files will be written with the correct name.
Convertir de Windows UTF-16 (con una BOM) a Unix UTF-8:
dos2unix -n in.txt out.txt
Convertir de Windows UTF-16LE (sin una BOM) a Unix UTF-8:
dos2unix -ul -n in.txt out.txt
Convertir de Unix UTF-8 a Windows UTF-8 sin una BOM:
unix2dos -m -n in.txt out.txt
Convertir de Unix UTF-8 a Windows UTF-16:
unix2dos < in.txt | iconv -f UTF-8 -t UTF-16 > out.txt
GB18030 es un estándar del gobierno chino. Todo producto software vendido en China está obligado por ley a contener un subconjunto del GB18030 estándar. Véase <http://en.wikipedia.org/wiki/GB_18030>.
GB18030 es totalmente compatible con Unicode y puede considerarse como formato de transformación Unicode. Como ocurre con UTF-8, GB18030 es compatible con ASCII. GB18030 también es compatible con la página de códigos de Windows 936, también conocida como GBK.
En Unix/Linux los archivos UTF-16 se convierten a GB18030 cuando la codificación local se establece en GB18030. Tenga en cuenta que esto sólo funcionará si la configuración local es soportada por el sistema. Utilice "locale -a" para obtener el listado de configuraciones regionales admitidas.
Use la opción "-ul" o "-ub" para convertir un archivo UTF-16 sin BOM.
Los archivos codificados como GB18030 pueden tener una Marca de Orden de Bytes, como ocurre con los archivos Unicode.
Lee la entrada desde 'stdin' y escribe la salida a 'stdout':
dos2unix < a.txt cat a.txt | dos2unix
Convierte y reemplaza a.txt. Convierte y reemplaza b.txt:
dos2unix a.txt b.txt dos2unix -o a.txt b.txt
Convierte y reemplaza a.txt empleando modo de conversión ascii:
dos2unix a.txt
Convierte y reemplaza a.txt empleando modo de conversión ascii, convierte y reemplaza b.txt empleando modo de conversión de 7bits:
dos2unix a.txt -c 7bit b.txt dos2unix -c ascii a.txt -c 7bit b.txt dos2unix -ascii a.txt -7 b.txt
Convierte a.txt del formato de Mac a Unix:
dos2unix -c mac a.txt mac2unix a.txt
Convierte a.txt del formato de Unix a Mac:
unix2dos -c mac a.txt unix2mac a.txt
Convierte y reemplaza a.txt manteniendo la fecha del archivo original:
dos2unix -k a.txt dos2unix -k -o a.txt
Convierte a.txt y escribe la salida en e.txt:
dos2unix -n a.txt e.txt
Convierte a.txt y escribe la salida en e.txt, manteniendo la fecha de e.txt igual a la de a.txt:
dos2unix -k -n a.txt e.txt
Convierte y reemplaza a.txt, convierte b.txt y escribe en e.txt:
dos2unix a.txt -n b.txt e.txt dos2unix -o a.txt -n b.txt e.txt
Convierte c.txt y escribe en e.txt, convierte y reemplaza a.txt, convierte y reemplaza b.txt, convierte d.txt y escribe en f.txt:
dos2unix -n c.txt e.txt -o a.txt b.txt -n d.txt f.txt
In a Unix shell the find(1) and xargs(1) commands can be used to run dos2unix recursively over all text files in a directory tree. For instance to convert all .txt files in the directory tree under the current directory type:
find . -name '*.txt' -print0 |xargs -0 dos2unix
The find(1) option "-print0" and corresponding xargs(1) option "-0" are needed when there are files with spaces or quotes in the name. Otherwise these options can be omitted. Another option is to use find(1) with the "-exec" option:
find . -name '*.txt' -exec dos2unix {} \;
In a Windows Command Prompt the following command can be used:
for /R %G in (*.txt) do dos2unix "%G"
PowerShell users can use the following command in Windows PowerShell:
get-childitem -path . -filter '*.txt' -recurse | foreach-object {dos2unix $_.Fullname}
export LANG=nl Neerlandés export LANG=nl_NL Neerlandés, Países Bajos export LANG=nl_BE Neerlandés, Bélgica export LANG=es_ES Español, España export LANG=es_MX Español, México export LANG=en_US.iso88591 Ingles, EE. UU., codificación Latín-1 export LANG=en_GB.UTF-8 Ingles, Reino Unido, codificación UTF-8
Para obtener una lista completa de códigos de idioma y país véase el manual de gettext: <http://www.gnu.org/software/gettext/manual/html_node/Usual-Language-Codes.html>
En sistemas Unix puede emplear el comando locale(1) para obtener información específica de locale.
Si selecciona un idioma que no está disponible el programa funcionará en ingles.
Ejemplo (intérprete de comandos POSIX):
export DOS2UNIX_LOCALEDIR=$HOME/share/locale
Se regresa cero cuando el programa termina exitosamente. Cuando ocurre un error del sistema se regresará el último número de error del sistema. Para otros errores se regresa 1.
El valor de retorno es siempre cero en modo silencioso, excepto cuando se emplean parámetros incorrectos.
<http://es.wikipedia.org/wiki/Documento_de_texto>
<http://es.wikipedia.org/wiki/Retorno_de_carro>
<http://es.wikipedia.org/wiki/Nueva_l%C3%ADnea>
<http://es.wikipedia.org/wiki/Unicode>
Benjamin Lin - <blin@socs.uts.edu.au>, Bernd Johannes Wuebben (mac2unix mode) - <wuebben@kde.org>, Christian Wurll (add extra newline) - <wurll@ira.uka.de>, Erwin Waterlander - <waterlan@xs4all.nl> (maintainer)
Página del proyecto: <http://waterlan.home.xs4all.nl/dos2unix.html>
Página de SourceForge: <http://sourceforge.net/projects/dos2unix/>
2018-04-22 | dos2unix |