Как найти уродливым - поврежденный - DOS - Файлы BOMByte в Linux

Ресурсы на TechNet являются способом пойти. Существует много документации и видео там, которые могли запустить Вас. Когда к придет к автоматизации, преподавайте себе Powershell. Это - превосходная объектно-ориентированная оболочка, подобная во многих способ колотить, но это делает доступ к свойствам объектов и методам бризом.

0
задан 9 September 2010 в 22:20
2 ответа

"Плохой EOL" (no end of line сообщение), не плохо. Это просто уведомляет Вас, что нет никакого EOL после последней строки. Конвенция Unix состоит в том, чтобы использовать EOL в качестве разделителя строки, и большинство инструментов Windows считает это разделителем.

Кроме сообщения (и небольшое раздражение, когда catлуг такой файл), нет ничего плохо в нем.


Окончания строки DOS/Windows (CR/LF) могут вызвать некоторые проблемы, особенно в сценариях: когда Linux читает #! строка, это будет использовать все до первого LF и рассмотрит часть CR имени файла интерпретатора.

Поскольку исполняемые сценарии лучше использовать окончания строки Unix (:set ff=unix), иначе Linux попытался бы выполниться /usr/bin/perl<CR> когда Вы имели #!/usr/bin/perl наряду с окончаниями строки Windows.

Для других файлов это не имеет значения очень.


Подпись UTF-8 (EF BB BF) может вызвать еще больше проблем - отключают с :set nobomb, масса - удаляет с sed -i 's/^\xef\xbb\xbf//'.


EOL: символ конца строки или символы; или LF или CR/LF, какой бы ни является соответствующим.

0
ответ дан 5 December 2019 в 17:32

Yeh, байты BOM плохи. Локаль должна определить кодирование файла.

Другой вещью, как Вы справедливо указали, являются окончания строки. DOS имеет тенденцию быть CRLF, и Linux является LF только.

dos2unix будет заботиться об этой проблеме для Вас.

0
ответ дан 5 December 2019 в 17:32

Теги

Похожие вопросы