Unix2dos
Unix2dos — программа для преобразования переводов строк в текстовых файлах из формата Unix (символ перевода строки) в формат DOS (символ возврата каретки + перевод строки) и обратно. Также встречаются альтернативные названия: todos и u2d. Если программа запущена как unix2dos, она конвертирует текстовый файл Unix в формат DOS, если как dos2unix — выполняет обратное преобразование: из формата DOS в Unix[1].
Общие сведения
| Unix2dos | |
|---|---|
| Тип | команда |
| Автор | John Birchfield |
| Разработчики | Benjamin Lin, Bernd Johannes Wuebben, Christian Wurll, Erwin Waterlander |
| Написана на | Си |
| Операционные системы | Unix-подобные, DOS, OS/2, Windows |
| Первый выпуск | 1989 |
| Аппаратная платформа | кроссплатформенное ПО |
| Последняя версия | 7.5.4 (30 января 2026) |
| Репозиторий | git.code.sf.net/p/dos2un… |
| Лицензия | лицензия в стиле FreeBSD |
| Сайт | waterlan.home.xs4all.nl/… |
Возможности
Unix2dos и dos2unix не входят в стандарт UNIX. Коммерческие UNIX-системы обычно включают собственную реализацию unix2dos/dos2unix, например, dos2unix/unix2dos в SunOS/Solaris, dos2ux/ux2dos в HP-UX и to_unix/to_dos в Irix.
Существует множество альтернативных реализаций с разными именами команд и опциями, таких как dos2unix/unix2dos, d2u/u2d, fromdos/todos, endlines, flip. Мультикомандный бинарный файл busybox также содержит реализацию unix2dos/dos2unix.
Информацию о параметрах и использовании см. в руководстве соответствующих команд.
Альтернативы преобразования unix2dos
- Использовать команду recode:
$ recode latin1..dos file
- Открыть файл с помощью Windows Write (WordPad) или Microsoft Word и сохранить в формате «обычный текст» («plain text»).
- Аналогичного результата можно добиться с помощью разных UNIX-утилит, преобразующих завершающие символы строки '\n' в сочетание символов возврата каретки и перевода строки '\r\n', например, с помощью perl или GNU-реализации sed:
*$ perl -i -p -e 's|[\r\n]+|\r\n|g' file*$ sed -i -n -z 's/\r*\n/\r\n/g;p' file
Альтернативы преобразования dos2unix
Для обратного преобразования (dos2unix) можно использовать, например, утилиту tr с флагом -d '\r' для удаления символов возврата каретки:
$ tr -d '\r' < file > file2 # Для ASCII и других файлов без многобайтовых символов (не работает с utf-8).$ perl -i -p -e 's/\r//g' file$ sed -i -e 's/\r//g' file
Примечание: этот метод предполагает наличие только DOS-переводов строк во входном файле. Все Mac-переводы строк (\r), присутствующие во входном файле, также будут удалены.
В качестве альтернативы возможно использовать команду col, доступную в Linux и других Unix-подобных системах, включая Mac OS X. В данном примере InFile содержит нежелательные DOS (^M) окончания строк. После выполнения OutFile будет создан или перезаписан и будет содержать окончания строк UNIX. Опция -b указывает col не выводить символы backspace:
$ col -b < InFile > OutFile