2012-02-21 31 views
6

Tengo varios archivos que quiero convertir de Dos a Unix. ¿Hay alguna API o método que me ayude a hacer esto?Cómo convertir archivos de Dos a Unix

+0

Posible duplicado de [¿Cómo convertir DOS/Windows nueva línea (CRLF) a Unix nueva línea (\ n) en una secuencia de comandos Bash?] (Https://stackoverflow.com/questions/2613800/cómo-a-convertir-dos-windows-salto de línea-CRLF a Unix nueva línea-n-en-la-fiesta-script) – jww

Respuesta

16

Hay herramientas de Linux que pueden hacer esto (dos2unix por ejemplo).

En Java que se puede hacer con String.replaceAll().

DOS usa \r\n para la terminación de línea, mientras que UNIX usa un solo \n.

String unixText = windowsText.replaceAll("\r\n", "\n"); // DOS2UNIX 

Así que no, no existe API. Sí, es muy fácil.

+0

qué necesito para abrir todos los archivos uno por uno y replaceAll ("\ r \ n "," \ n "). –

+1

Sí, por supuesto. Tenga en cuenta que esto solo tiene sentido para los archivos de texto ASCII. – parasietje

+0

¿qué pasa con el soporte de patrones de archivos para editar múltiples archivos? – jontejj

1

La mayoría de las distribuciones de Unix/Linux tienen utilidad llamada unix2dos y dos2unix comandos.

EDITAR: Copie su archivo a la máquina Unix y ejecute dos2unix *.

También se puede encontrar esta utilidad para Windows y hacer lo mismo.

0

hay una utilidad/comandos en Linux/Unix llamada dos2unix que le ayudará a convertir sus archivos de DOS a formato UNIX. Para instalar simplemente escriba en la consola (es posible que necesite privilegios de root)

yum install dos2unix 

para hacer la conversión tiene que usar dos2unix comando seguido de nombre de archivo. Por ejemplo

[[email protected] ~]$ dos2unix sample.txt 
dos2unix: converting file sample.txt to UNIX format ... 

para todos los archivos en un directorio puede simplemente usar

dos2unix * 
+0

No sé por qué esta respuesta fue rechazada. Después de todo, indicaba el nombre del paquete que se usaría al instalar desde 'yum', que ninguna de las otras respuestas notó. –

1

Sólo una forma alternativa (a la que se describe parasietje) usando dox2unix. Decir que todos los dos archivos están en una carpeta

Runtime.getRuntime().exec("dos2unix /path/to/dos/files/*"); 
0
String unixText = windowsText.replaceAll("\r\n", "\n"); // DOS2UNI 

La línea anterior debe eliminar todo el \ r pero por alguna razón, también elimina el \ n así que tuve que volver a agregarlo al imprimir unixText a un archivo : unixText + "\ n"

Cuestiones relacionadas