Как конвертировать файлы из Dos в Unix

107
8

У меня есть несколько файлов, которые я хочу конвертировать из Dos в Unix. Есть ли какой-либо API или метод, который поможет мне сделать это?

спросил(а) 2012-02-21T12:24:00+04:00 8 лет, 8 месяцев назад
1
Решение
165

Есть инструменты linux, которые могут это сделать (dos2unix).


В Java это можно сделать с помощью String.replaceAll().


DOS использует \r\n для завершения строки, тогда как UNIX использует один \n.

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

Нет, нет API. Да, это легко.

ответил(а) 2012-02-21T12:29:00+04:00 8 лет, 8 месяцев назад
57

Просто альтернативный способ (чем описанный паразиец) с использованием dox2unix. Скажем, что все файлы dos находятся в одной папке


Runtime.getRuntime().exec("dos2unix /path/to/dos/files/*");

ответил(а) 2013-07-19T16:25:00+04:00 7 лет, 3 месяца назад
58

В большинстве дистрибутивов unix/linux есть утилита с командами unix2dos и dos2unix.


EDIT:
Просто скопируйте файл на unix-машину и запустите dos2unix *.

Вы также можете найти эту утилиту для Windows и сделать то же самое.

ответил(а) 2012-02-21T12:29:00+04:00 8 лет, 8 месяцев назад
41

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

Вышеупомянутая строка должна удалить все \r, но по какой-то причине она также удаляет \n, поэтому мне пришлось добавить ее обратно при печати unixText в файл:   unixText + "\n"

ответил(а) 2016-01-30T17:08:00+03:00 4 года, 9 месяцев назад
41

В Linux/Unix под названием dos2unix есть утилита/команда, которая поможет вам преобразовать ваши файлы из формата dos в unix. Чтобы просто установить консоль (возможно, вам нужны привилегии root)


yum install dos2unix

Чтобы выполнить преобразование, вам нужно использовать команду dos2unix, за которой следует имя файла. Например


[aniket@localhost ~]$ dos2unix sample.txt 
dos2unix: converting file sample.txt to UNIX format ...

Для всех файлов в каталоге вы можете просто использовать


dos2unix *

ответил(а) 2013-07-19T16:06:00+04:00 7 лет, 3 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема