Come convertire i file da DOS in Unix
Domanda
Sto avendo diversi file che voglio convertire da DOS in Unix. C'è qualche API o metodo che mi aiuterà a farlo?
Soluzione
Ci sono strumenti Linux che possono farlo (dos2unix
Per esempio).
In Java può essere fatto con String.replaceAll()
.
Dos usa \r\n
Per la terminazione della linea, mentre UNIX utilizza un singolo \n
.
String unixText = windowsText.replaceAll("\r\n", "\n"); // DOS2UNIX
Quindi no, non esiste API. Sì, è facile.
Altri suggerimenti
Solo un modo alternativo (rispetto a quello descritto da Parasietje) usando Dox2Unix. Dì che tutti i file DOS siete in una cartella
Runtime.getRuntime().exec("dos2unix /path/to/dos/files/*");
La maggior parte delle distribuzioni UNIX/Linux ha l'utilità denominata unix2dos
e dos2unix
comandi.
Modifica: basta copiare il tuo file su Unix Machine ed eseguire dos2unix *
.
Puoi anche trovare questa utilità per Windows e fare lo stesso.
C'è un'utilità/comando in Linux/Unix chiamato dos2unix
Ciò ti aiuterà a convertire i tuoi file da DOS in formato UNIX. Per installare semplicemente digitare in console (potrebbe essere necessario privilegi di root)
yum install dos2unix
Per eseguire la conversione è necessario utilizzare il comando dos2unix seguito da nome file. Per esempio
[aniket@localhost ~]$ dos2unix sample.txt
dos2unix: converting file sample.txt to UNIX format ...
Per tutti i file in una directory puoi semplicemente utilizzare
dos2unix *
String unixText = windowsText.replaceAll("\r\n", "\n"); // DOS2UNI
La riga sopra dovrebbe rimuovere tutto R ma per qualche motivo rimuove anche l'IndE, quindi ho dovuto aggiungerlo quando stampano UNIXText in un file: UnixText + " n"