Замены параметра могут использоваться для замены текста без любых проблем выхода:
output=$(ls -t downloads | while IFS= read -r f; do
echo "<a href=\"downloads/$f\">$f</a>"
done)
html=$(<index.html)
html=${html/placeholder/$output}
echo "$html" > output.html
Вы могли также использовать awk -v
передать текст замены как переменную:
awk -v v="$output" '{sub("placeholder",v);print}' index.html > output.html
Или используйте Ruby для замены многострочного шаблона, не требуя заполнителя:
echo "$output" | ruby -i -e 'print gets(nil).sub(/<a .*<\/a>\n/m, STDIN.read)' index.html
Вы можете использовать клиент, поддерживающий протокол FXP, как описано в одном из ответов на вопросы и ответы webmaster.stackexchange.com: Как я могу передавать файлы с одного сервера на другой, используя FTP
Далее из базы знаний SmartFTP:
выдержкаЧто такое FXP?
FXP означает протокол File eXchange Protocol (протокол обмена файлами). Он позволяет копировать файлы с одного FTP-сервер к другому с помощью FXP-клиента. Обычно вы передаете файлы используя FTP-протокол между вашей машиной и FTP-сервером и максимальная скорость передачи данных зависит от скорости вашего интернета подключение (например, 56к, кабель или T1). При передаче файлов между два удаленных сервера с помощью клиента FXP, максимальная скорость передачи данных зависит не от вашего соединения, а только от соединения между два сервера, которые обычно намного быстрее, чем ваши собственные. Соединение. Потому что это прямое соединение, вы не сможете просмотреть прогресс или скорость передачи файлов.
2 такими клиентами, поддерживающими эту функцию, являются SmartFTP и CuteFTP.
выдержкавыдержкаОграничения
- Оба FTP-сервера должны поддерживать FXP и иметь включенную поддержку. Пожалуйста, проконсультируйтесь с администратором сервера, так как большинство FTP-серверов не поддерживает поддерживать FXP или отключить FXP в связи с потенциальными рисками безопасности.
- Один сервер должен поддерживать PASV-режим, а другой должен разрешать команды PORT с иностранного адреса. Клиент входит в систему по обоим адресам серверы, а затем он организует передачу файлов, сообщив одному серверу. что это будет пассивная передача, а другая, что это будет активная передача, см. пример.
Пример
FTP-клиент говорит FTP-серверу-получателю, чтобы он прослушал соединение, отправив команду "PASV". Исходный FTP-сервер соединяется к порту данных, сообщенному сервером-получателем (после успешная команда PASV). Затем клиент передает адрес/порт в формате "ПОРТ" на сервер-получатель. Таким образом, все данные передаются непосредственно от источника до конечного FTP-сервера. Оба сервера сообщать FTP-клиенту только о статусе сообщений о сбое/удаче. Вы можете передавать файлы с одного удаленного сервера на другой с помощью SmartFTP посредством открытие удаленного сервера в каждом окне, а затем перетаскивание.
Вы можете использовать FXP. Я использую CBFTP для Linux FXP:https://cbftp.eu/