dos2unix(1)

NOMBRE
dos2unix - Convertidor de archivos de texto de formato DOS/Mac a Unix y viceversa

SINOPSIS
    dos2unix [parámetros] [ARCHIVO ...] [-n ARCHIVO_DE_ENTRADA ARCHIVO_DE_SALIDA ...]
    unix2dos [parámetros] [ARCHIVO ...] [-n ARCHIVO_DE_ENTRADA ARCHIVO_DE_SALIDA ...]

DESCRIPCIÓN
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 fue modelado después de dos2unix bajo SunOS/Solaris. Hay una importante diferencia respecto a la versión original SunOS/Solaris. Esta versión hace, por defecto, la conversión en el mismo archivo (modo de archivo antiguo), mientras que la versión original de SunOS/Solaris sólo es compatible con la conversión en archivo emparejado (modo de archivo nuevo). Véanse las opciones "-o" y "-n".

PARÁMETROS

--  Todos los parámetros siguientes son tratados como nombres de archivo. Use este parámetro si desea convertir archivos cuyos nombres inician con un guión. Por ejemplo para convertir un archivoo llamado "-foo", use este comando:

        dos2unix -- -foo

    O en modo de archivo nuevo:

        dos2unix -n -- -foo out.txt

-ascii
    Sólo convierte los salto de línea. Éste es el modo de conversión por defecto.

-iso
    Conversión entre el conjunto de caracteres DOS e ISO-8859-1. Véase también la sección MODOS DE CONVERSIÓN.

-1252
    Usa la página de códigos Windows 1252 (Europa Occidental).

-437
    Usa la página de códigos DOS 437 (EE. UU.). Está es la página de códigos usada por defecto para conversión ISO.

-850
    Usa la página de códigos DOS 850 (Europa Occidental).

-860
    Usa la página de códigos DOS 860 (Portugués).

-863
    Usa la página de códigos DOS 863 (Francocanadiense).

-865
    Usa la página de códigos DOS 865 (Nórdico).

-7  Convierte caracteres de 8 bits al espacio de 7 bits.

-b, --keep-bom
    Mantiene la Marca de Orden de Byte (BOM). Cuando el archivo de entrada tiene BOM, escribe BOM en el archivo de salida. Este es el comportamiento por defecto en la conversión a saltos de línea DOS. Vea también la opción "-r".

-c, --convmode CONVMODE
    Establece el modo de conversión, Donde CONVMODE puede ser: ascii, 7bit, iso, mac siendo ascii el valor por defecto.

-f, --force
    Fuerza la conversión de archivos binarios.

-gb, --gb18030
    En Windows los archivos UTF-16 se convierten por defecto a UTF-8, sin tener en cuenta la configuración local. Use esta opción para convertir archivos UTF-16 a GB18030. Esta opción sólo está disponible en Windows.l Véase también la sección GB18030.

-h, --help
    Despiega la ayuda y termina el programa.

-i[MARCAS], --info[= MARCAS] ARCHIVO ...
    Muestra la información del archivo. No se realiza ninguna conversión.

    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

    Se pueden utilizar marcas extras opcionales para modificar la salida. Se pueden añadir una o más marcas.

    d   Muestra el número de saltos de línea DOS.

    u   Muestra el número de saltos de línea Unix.

    m   Muestra el número de saltos de línea Mac.

    b   Muestra la Marca de Orden de Byte.

    t   Muestra si el archivo es de texto o binario.

    c   Muestra sólo los archivos que pueden ser convertidos.

        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

-k, --keepdate
    Mantiene la fecha del archivo de salida igual a la del archivo de entrada.

-L, --license
    Muestra la licencia del programa.

-l, --newline
    Añade salto de línea adicional.

    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.

-m, --add-bom
    Escribe una Marca de Orden de Bytes (BOM) en el archivo de salida. Por defecto se escribe una BOM UTF-8.

    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 o UTF-16. Véase también la sección UNICODE.

-n, --newfile ARCHIVO_DE_ENTRADA ARCHIVO_DE_SALIDA ...
    Modo de archivo nuevo. Convierte el archivo ARCHIVO_DE_ENTRADA y escribe la salida al archivo ARCHIVO_DE_SALIDA. Los nombres de archivo deben ser dados en pares y los comodines no deben ser usados o perderá sus archivos.

    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.

-o, --oldfile ARCHIVO ...
    Modo de archivo antiguo. Convierte el archivo ARCHIVO y lo sobrescribe con la salida. El programa por defecto se ejecuta en este modo. Se pueden emplear comodines.

    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.

-q, --quiet
    Modo silencioso. Suprime todas las advertencias y mensajes. El valor retornado es cero. Excepto cuando se emplean parámetros incorrectos.

-r, --remove-bom
    Elimina la Marca de Orden de Byte (BOM). No escribe el BOM en el archivo de salida. Este es el comportamiento por defecto al convertir a saltos de línea Unix. Vea también la opción "-b".

-s, --safe
    Ignora los archivos binarios (por defecto).

-u, --keep-utf16
    Mantiene la codificación original UTF-16 en el archivo de entrada. El archivo de salida se escribirá con la misma codificación UTF-16, little o big endian, como el archivo de entrada. Esto impide la transformación a UTF-8. En consecuencia se escribirá un BOM UTF-16. Esta opción se puede desactivar con la opción "-ascii".

-ul, --assume-utf16le
    Se asume que el formato de archivo de entrada es UTF-16LE.

    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.

-ub, --assume-utf16be
    Se asume que el formato del archivo de entrada es UTF-16BE.

    Esta opción funciona igual que la opción "-ul".

-v, --verbose
    Mostrar mensajes detallados. Se muestra información extra acerca de Marcas de Orden de Bytes (BOM) y el número de saltos de línea convertidos.

-F, --follow-symlink
    Sigue los enlaces simbólicos y convierte los destinos.

-R, --replace-symlink
    Reemplaza los enlaces simbólicos con los archivos convertidos (los archivos destino originales no se alteran).

-S, --skip-symlink
    No altera los enlaces simbólicos ni sus destinos (por defecto).

-V, --version
    Despiega la información de la versión y termina el programa.

MODO MAC
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".

MODOS DE CONVERSIÓN

ascii
    En modo "ascii" sólo los saltos de línea son convertidos. Éste es el modo de conversión por defecto.

    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.

7bit
    En este modo todos los caracteres no ASCII de 8 bits (con valores de 128 a 255) son convertidos al espacio de 7 bits.

iso Los caracteres son convertidos entre un conjunto de caracteres DOS (página de códigos) y el conjunto de caracteres ISO-8859-1 (Latín-1) de Unix. Los caracteres DOS sin equivalente ISO-8859-1, para los cuales la conversión es imposible, son convertidos en un punto. Lo mismo se aplica para caracteres ISO-8859-1 sin contraparte DOS.

    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>.

UNICODE

  Codificaciones
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.

  Conversion
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.

  Marca de orden de bytes
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".

  Ejemplos Unicode
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
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 se establece la ubicación en China. Por ejemplo en una configuración local English British la conversión "en_GB.GB18030" de UTF-16 a GB18030 no funcionará, pero en una configuración local China "zh_CN.GB18030" sí lo hará.

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.

EJEMPLOS
Lee la entrada desde 'stdin' y escribe la salida a 'stdout':

    dos2unix
    dos2unix -l -c mac

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

CONVERSIÓN RECURSIVA
Use dos2unix en combinación con los comandos find(1) y xargs(1) para convertir recursivamente archivos de texto contenidos en un árbol de directorios. Por ejemplo para convertir todos los archivos .txt en el árbol de directorios debajo del directorio actual escriba:

    find . -name *.txt |xargs dos2unix

INTERNACIONALIZACIÓN

LANG
    El idioma principal se selecciona con la variable de entorno LANG. La variable LANG consiste de varias partes. La primer parte es el código del idioma en minúsculas. La segunda es opcional y es el código del país en mayúsculas, precedido por un guión bajo. Existe también una tercera parte opcional: la codificación de caracteres, precedida por un punto. Unos cuantos ejemplos para intérpretes de comandos tipo POSIX estándar:

        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.

LANGUAGE
    Con la variable de entorno LANGUAGE puede especificar una lista de prioridad de los idiomas, separados por dos puntos. Dos2unix da preferencia a LANGUAGE sobre LANG. Por ejemplo, primero neerlandés y entonces alemán: "LANGUAGE=nl:de". Para usar una lista de prioridad de idiomas a través de la variable LANGUAGE tiene que habilitar antes la internacionalización, asignando un valor distinto de "C" a LANG (o LC_ALL). Véase también el manual de gettext: <http://www.gnu.org/software/gettext/manual/html_node/The-LANGUAGE-variable.html>

    Si selecciona un idioma que no está disponible el programa funcionará en ingles.

DOS2UNIX_LOCALEDIR
    Con la variable de entorno DOS2UNIX_LOCALEDIR el LOCALEDIR asignado durante la compilación puede ser modificado. LOCALEDIR es usado para encontrar los archivos de idioma. El valor por defecto de GNU es "/usr/local/share/locale". El parámetro --version mostrará el LOCALEDIR en uso.

    Ejemplo (intérprete de comandos POSIX):

        export DOS2UNIX_LOCALEDIR=$HOME/share/locale

VALOR DE RETORNO
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.

ESTÁNDARES
<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>

AUTORES
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/>

VÉASE TAMBIÉN
file(1) find(1) iconv(1) locale(1) xargs(1)