Как преобразовать файл формата окончания строки DOS в формат Unix и обратно

Материал из wiki.p3.ru

Системы, основанные на ASCII или совместимом наборе символов, используют или LF (от англ. Line feed (перевод строки), 0x0A) или CR (от англ. Carriage Return, 0x0D) по отдельности, или двойку CRLF.

Соответственно, формат окончания строк у таких файлов различен и использование несовместимого формата (например, если конфигурационный файл или cgi-скрипт был отредактирован в текстовом редакторе под windows) может привести к различным проблемам, таким, как отказ работы программы с этим файлом или ненахождение пути к интерпретатору (в CGI-скриптах).

Для решения этой проблемы файл возможно перекодировать следующей командой на perl

Из формата окончания строк DOS (CR + LF) в формат окончаний строк UNIX (LF):

perl -pi -e 's/\r\n/\n/;' filename.txt

Обратно из формата переноса строк UNIX (LF) в формат DOS (CR + LF):

perl -pi -e 's/\n/\r\n/;' filename.txt

Можно указывать маску, то есть несколько файлов вместо имени файла, например, *.txt

Подробнее о том, откуда взялись эти различия смотрите статью http://ru.wikipedia.org/wiki/Перевод_строки