Как преобразовать файл формата окончания строки DOS в формат Unix и обратно
Системы, основанные на 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/Перевод_строки