Команда sed с доступом по FTP - PullRequest
0 голосов
/ 03 марта 2019

Я пытаюсь заменить несколько ключевых слов, пытаясь использовать sed на удаленном FTP-сервере.

sed -i -e 's/Squit/Use/g' ftp://server247.web-hosting.com/squit.io/index.html && sed -i -e 's/squit/ooze/g' ftp://server247.web-hosting.com/squit.io/index.html

Я получил сообщение об ошибке, что папка не найдена.

Это правильный синтаксис для доступа к удаленным папкам с sed?Или, возможно, в папке включена ошибка?

1 Ответ

0 голосов
/ 03 марта 2019

В обычных Unix-подобных системах нет способа получить доступ к удаленным файлам через ftp, как если бы они были локальными.Возможно, вы сможете найти драйвер виртуальной файловой системы (Google для FUSE) или операционную систему (Plan 9, Inferno?), Которая поддерживает это;но тогда это становится вопросом для выбранной вами платформы, а не о sed или U * x.

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

curl 'ftp://server247.web-hosting.com/squit.io/index.html' |
sed -e 's/Squit/Use/g' -e 's/squit/ooze/g' >/tmp/squit.io.index.html
# Then upload it back somehow

Обратите внимание также на синтаксис объединения нескольких команд sed в одном вызове.Если бы действительно было возможно редактировать удаленные файлы на месте, вам бы особенно хотелось избежать накладных расходов, связанных с многократными обходами и перезаписью файла несколько раз;но даже для локальной обработки, это определенно то, чего всегда следует избегать, если это возможно.

...