Я использую ShellScript для редактирования файла конфигурации привязки dns при добавлении и удалении ссылок на зоны. Затем в файле «master.conf» мы имеем это содержание:Использование sed для замены всей фразы
...
...
zone "mydomain.com" {
type master;
file "/var/zones/m/mydomain.com"
};
...
...
Я хочу «удалить» эту запись в «mydomain.com» с использованием «SED», но я could'n написать правильное регулярное выражение для этого , Выражение должно использовать переменное доменное имя и не поиск до следующей закрывающей скобки и точки с запятой, что-то вроде этого:
DOMAIN_NAME="mydomain.com"
sed -i.bak -r 's/^zone "'$DOMAIN_NAME'" \{(.*)\};$//g' /var/zones/master.conf
Смотрите, что мы должны игнорировать содержание, заключенные в скобках, и этот куску придется заменить на «ничего». Я пробовал некоторые варианты этого выражения, но безуспешно.
довольно опасное регулярное выражение, так как '(. *)' Собирается всасывать все до ** LAST ** '}' в файл. вы можете потенциально уничтожить все зоны в файле. –
@Mark только для следующего закрытого кронштейна. Я уже изменяю текст из вопроса. Спасибо за внимание. – rcsalvador