Удаленная команда SSH с sed, не работающим

В удаленном сервере я могу выполнить эту команду:

sed -i '/address/c\address xx.xx.xx.xx' /myfile

заменять любую строку, содержащую address с address xx.xx.xx.xx в /myfile

Однако от моей локальной машины, эта команда не работает

ssh root@ip sed -i '/address/c\address xx.xx.xx.xx' /myfile

Это дает следующую ошибку:

sed: can't read xx.xx.xx.xx: No such file or directory

Как решить эту проблему?

1
задан 24 April 2017 в 13:32

2 ответа

Вы предотвращаете расширение на локальной оболочке, но необходимо сохранить все до команды для выполнения, sed в этом случае, на обеих оболочках.

Кавычка эти sed команда для выполнения:

ssh root@ip "sed -i '/address/c\address xx.xx.xx.xx' /myfile"

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

1
ответ дан 7 December 2019 в 15:37

Заменять u должно использовать sed таким образом:

sed -i 's/^.*address/address xx.xx.xx.xx/' yourfile

Этот regex должен найти "адрес" в Вашем файле и заменить его для "адреса xx.xx.xx.xx".

0
ответ дан 7 December 2019 в 15:37

Другие вопросы по тегам:

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