@Free0wl

Как удалённо выполнить sed с кавычками?

как выполнить замену части строки после "$config['product_name'] = ".
необходимо сделать замену удалённо: ssh user@1.2.3.4 "sed ...."
# cat 4del/file4del.php
$config['enable_spellcheck'] = false;
$config['language'] = 'ru_RU';
$config['create_default_folders'] = true;

// Branding
$config['product_name'] = 'здесь может быть что угодно';
//$config['skin_logo'] = null;


Допустим как заменить я знаю, пусть не красиво, но всё же:
sed "s/^\$config\['product_name'\] = .*/\$config\['product_name'\] = 'My Company Webmail';/"

, но как экранировать кавычки для ssh?
Спасибо
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ответы на вопрос 2
Тут писал как в седе экранировать хитрые символы

sed -i 's/\x24config\[\x27product_name\x27\] = \x27true\x27\x3B/\x24config\[\x27product_name\x27\] = \x27false\x27\x3B/' /etc/lalala/lala.conf

Посмотреть пример
Вторая часть вопроса
ssh [User_Name]@[Rremote_Host_Name or IP] [Command or Script]


Перед тем как менять можно протестить вместо -i поставь -e будет вывод в терминал результата
Спасибо кэп вопрос решен
Ответ написан
saboteur_kiev
@saboteur_kiev
software engineer
можно просто так
'\''

Для упрощения, кстати можно при поиске строки, заменять спецсимволы просто на точку:

ssh user@localhost "sed 's/^.config..product_name.*/\$config['\''product_name'\''] = '\''что угодно'\''/' a.txt"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы