Системы, основанные на 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/Перевод_строки