Сохранить новую строку при редактировании удаленный файл с помощью WinSCP


Как я понимаю, если я создам файл на моем сервере Solaris, я автоматически получу LF-конечную строку.

Настройка: я удаленно вошел в систему Windows server (без интернета, пока я подключен к нему). На этом сервере Windows я использую Winscp для входа на сервер solaris.

Проблема: Когда я создаю текстовый файл на сервере Solaris (с помощью WinSCP), я могу открыть его с помощью Notepad++. Когда я открываю файл, он всегда имеет CRLF в качестве новой строки характер, не знаю почему. Затем я изменил символ CRLF на LF, используя 'find and replace' с '/r/n ' на '/n'. Когда я нахожу и заменяю, я вижу, что символ новой строки был изменен на "LF". Однако, как только я сохраняю файл и снова открываю его, мы возвращаемся с "CRLF".

Может быть, notepadd++ показывает мне ложный символ, возможно, что-то связанное с открытием файла Solaris через WinSCP?

Или я должен сделать файл, используя shell scripting (bash)?

Даже если Я создаю файл с помощью shell script, как я могу быть уверен, что символ новой строки в этом файле-LF, а не CRLF (есть ли способ сделать это на терминале?), потому что сейчас я использую Notepad++, и он всегда показывает CRLF как символ новой строки, когда я снова открываю файл.

Цель: то, что я хочу, это просто создать любой текстовый файл с 'LF' в качестве символа новой строки. Я использую Solaris bash.

3 3

3 ответа:

Winscp открыла внутренний текстовый редактор для ввода текстового содержимого. Он сохранен во временный файл локально на вашей машине Windows с указанным вами именем и, наконец, передан в режиме ascii в Solaris.

Когда вы загрузили его в Windows, вполне вероятно, что он также был загружен в режиме ascii. В результате символы строки изменения были преобразованы в Windows flavor CR+LF.

Выглядит нормально. Если вы хотите убедиться в этом, я ... я бы предложил вам проверить содержимое файла с помощью редактора на Solaris, например vi. Winscp имеет пункт меню команды - > Открыть в PuTTY для вас.

WinSCP по умолчанию не преобразует последовательность EOL для редактирования файлов во внешнем редакторе, за исключением тех случаев, когда редактор является встроенным в Windows notepad.exe.

Таким образом, вы должны были включить преобразование в настройках самостоятельно.

См. режим принудительной передачи текста для файлов, редактируемых во внешнем редакторе опция в диалоге настроек редактора:

Введите описание изображения здесь

При отключенной опции вы получите файл, открытый в Notepad++ точно так же, как он хранится на сервер.

Есть несколько вариантов. Вы можете настроить Notepad++ для создания текстовых файлов в стиле Unix. Другой вариант-настроить scp так, чтобы он передавал в текстовом режиме текстовый файл. Третий вариант, однако он может быть несколько неудобен для запуска каждый раз-команда dos2unix делает именно то, что вам нужно Четвертый вариант-использовать vi или какой-то редактор в терминале Unix. Я думаю, что нет необходимости делать сценарии для этого.