Удаленная команда 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

6 ответов

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

Цитировать sed для запуска:

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

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

1
ответ дан 22 May 2018 в 23:17

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

Цитировать sed для запуска:

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

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

1
ответ дан 18 July 2018 в 14:22

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

Цитировать sed для запуска:

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

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

1
ответ дан 24 July 2018 в 20:23

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

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

Это регулярное выражение должно найти «адрес» в вашем файле и заменить его на «адрес xx.xx.». xx.xx».

0
ответ дан 22 May 2018 в 23:17

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

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

Это регулярное выражение должно найти «адрес» в вашем файле и заменить его на «адрес xx.xx.». xx.xx».

0
ответ дан 18 July 2018 в 14:22

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

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

Это регулярное выражение должно найти «адрес» в вашем файле и заменить его на «адрес xx.xx.». xx.xx».

0
ответ дан 24 July 2018 в 20:23

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

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