Во избежание побочных эффектов, я бы заменил всю строку:
sed -i.bak -e 's#^ *ServerRoot *"/usr" *$#ServerRoot "/home/Tina/apache"#' httpd.conf
обычно используется / от / к // ', но так как вы повсемеете везде, это мудро Используйте другой символ, поэтому вам не нужно писать \ /
для каждого шаператора травления в своем выражении. Я положил ^ ... $
вокруг вашего из выражения, чтобы убедиться, что соответствует только линиям, состоящим из именно в том, что ( ^
является началом линии, $
Строки)
Коммутатор [1240494] -I -I
-I будет редактировать ваш файл на месте, но сделать резервную копию httpd.conf.bak
, что очень хорошая идея при редактировании системного конфигурации. файлы.
В случае, если ваш SED
не поддерживает альтернативные разделители, вы можете попробовать
sed -i.bak -e 's/^ *ServerRoot *"\/usr" *$/ServerRoot "\/home\/Tina\/apache"/' httpd.conf
Термины, которые вам нужны для использования некоторого google-fu - это 'перенаправление', что вы делаете в процессе < input.txt
и 'конвейер', что вы делаете в процессе cat input.txt |
Как только вы это узнаете, вы сможете найти такие статьи, как эта. https://askubuntu.com/questions/172982/what-is-the-difference-between-redirection-and-pipe
, который, по-моему, хорошо отвечает на твой вопрос.