Задать вопрос
shap3n
@shap3n
ASP .NET Developer

Как экранировать символ $ (доллар)?

Приветствую.
Кто может подсказать как экранировать символ $ (доллар) в терминале Linux с использованием sed?
Изначально по незнанию выполнил команду
find -type f -name \*.php -exec sed -i -r "s/'lead_domain' => $url/'lead_domain' => substr($url, 0, 100)/g" {} \;

И у меня вышло что $url уполз в конец строки и получилось "'lead_domain' => substr(, 0, 100)$url"
Потом я использовал
find -type f -name \*.php -exec sed -i -r "s/'lead_domain' => \$url/'lead_domain' => substr(\$url, 0, 100)/g" {} \;

но эта команда не срабатывает. Как правильно написать, чтобы выполнилась?
  • Вопрос задан
  • 684 просмотра
Подписаться 1 Простой 6 комментариев
Пригласить эксперта
Ответы на вопрос 2
@MirG
Попробуйте два слеша перед долларом
Ответ написан
@Zerg89
find -type f -name \*.php -exec sed -i -r 's/lead_domain => $url/lead_domain => substr($url, 0, 100)/g' {} \;


А вообще не совсем понятно что нужно получить в результате($url должна резолвится внутри самого файла или во время выполнения скрипта?)

Ps и разберись наконец чем отличается '' от ""
Ответ написан
Ваш ответ на вопрос

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

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