В конфигурации nagios
define service{
use generic-service
host_name xxx.xxx.com
service_description xxx Status
check_command check_http!xxx.xxx.com -S
}
Я хочу удалить весь раздел, как указано выше, соответствующее регулярное выражение xxx.xxx.com . Как это сделать с помощью sed или любая другая утилита Linux
ed my-nagios.conf <<q
w my-bagios.conf~
g/xxx.xxx.com/ ?define?,/}/d
w
q
Может быть, такой сценарий awk:
awk -f этот-сценарий.awk my-nagios.conf> my-nagios.conf.new
# start of block
/^define/ {
collecting = 1;
matched = 0;
buf = "";
}
# end of block
/}/ {
collecting = 0;
if (!matched) {
print buf $0;
};
next;
}
# Row in bad block
/xxx.abc.com/ {
if (collecting)
matched = 1;
}
# Normal row
{
if (collecting) {
buf = buf $0 "\n";
} else {
print $0;
}
}