Замена части строки в файле (bash)

программирование Linux unix bash

Народ помогите разобраться.
Есть файл /etc/apache2/sites-available/default
Надо заменить
DocumentRoot /var/www на DocumentRoot /home/USER/www/SITE
и
<Directory /var/www/> на <Directory /home/USER/www/SITE/>
Я не программист. Почитал маны, понял, что надо через sed делать.
Делаю
a=SITE #имя хоста добавляется из значения переменной
sed -i -e "s/DocumentRoot /var/www/DocumentRoot $HOME/www/$a/" /etc/apache2/sites-available/default
sed -i -e "s/<Directory /var/www/>/<Directory $HOME/www/$a/>/" /etc/apache2/sites-available/default

Что не так? Как правильно?

Примечание:
Юрий Чудновский спасибо. А какие еще разделители можно использовать?
Ответы:
Неправильно то, что ты используешь разделитель "/", и он же присутствует в обрабатываемом тексте. Следует выбрать другой разделитель команды s, например, решётку.
экранируй слеши бэкслешами
Как разделитель можно еще и двоеточие использовать.


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

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

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.