У меня есть SMB-соединение с хостом Ubuntu Server 12.10, который имеет сценарии оболочки и файлы конфигурации, которые я хочу редактировать с помощью клиента Windows 7 с помощью Notepad++. Я могу открывать файлы и вносить изменения, но как только я сохраняю их, без изменений в кодировке символов, они становятся нечитаемыми на хосте.

Как я могу редактировать и сохранять файлы в Windows 7, чтобы их можно было читать и выполнять в Ubuntu Server 12.10?

2 ответа2

4

РЕДАКТИРОВАТЬ: Вы можете включить завершение строки Unix в Notepad++ в Edit -> EOL Conversion -> Unix Format.

Одна из наиболее распространенных проблем совместимости текстовых файлов между системами Unix и Windows заключается в том, что в Windows термин «конец строки» представляет собой CRLF (возврат каретки + перевод строки, ascii 13 и 10), тогда как Unix использует только LF (10). Вероятно, это приводит к ошибке вроде ./foo.sh: bad interpreter: /bin/sh^M: no such file or directory .

На стороне Ubuntu есть утилита dos2unix , которая преобразует любые существующие файлы для вас:

apt-get install dos2unix
dos2unix myscript.sh

Это изменяет файл на месте, чтобы удалить CR.

0

Как сказал Джим, проблема, вероятно, заключается в обрыве линии. Вы можете исправить это на сервере Linux, выполнив эту команду для ваших измененных файлов:

sed -i 'N;s/\r\n/\n/g' file

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .