sed 's/$downtime_hosts = 8;/$downtime_hosts = 15;/' file.php
$
не представляет проблемы, поскольку он не будет действовать как якорь, если он не найден в конце шаблона. Сценарий sed
действительно должен быть заключен в одинарные кавычки, хотя в противном случае оболочка попытается расширить $ downtime_hosts
как переменную оболочки.
Чтобы соответствовать шаблону только в начале строки:
sed 's/^$downtime_hosts = 8;/$downtime_hosts = 15;/' file.php
Если целое число 8 может быть любым целым числом:
sed 's/^$downtime_hosts = [0-9]*;/$downtime_hosts = 15;/' file.php
Чтобы заменить целое число целым числом, содержащимся в переменной оболочки $ newint
:
sed "s/^\$downtime_hosts = [0-9]*;/\$downtime_hosts = $newint;/" file.php
Обратите внимание, что теперь мы должны заключить в двойные кавычки скрипт редактирования sed
, чтобы оболочка расширяла переменную $ newint
. Это также означает, что мы вынуждены избегать двух существующих $
из оболочки.