Моего требования, чтобы удалить определенные строки из моего файла nagios
Если вы хотите удалить несколько строк выше и ниже определенной строки
Ниже упомянут является частью моего hotname.cfg
файла. Мое требование состоит в том, чтобы сделать сценарий оболочки для удаления строк, начинающихся с "define host {" upto "}"
, а переменный ввод (read)
для извлечения из пользователя - это просто имя_хоста, которое может отличаться.
здесь я хочу, чтобы удалить все записи, относящиеся к имя_хосту -> hostname02x поэтому необходимо удалить записи, относящиеся к нему, начиная с "define host {" upto "}"
, так что файл, который ранее выглядеть
#cat hostname.cfg
define host{
use linux-server ; Name of host template to use
host_name hostname01x
hostgroups COT-Servers
contact_groups admins
alias FEA Preprod
}
define host{
use linux-server ; Name of host template to use
host_name hostname02x
hostgroups COT-Servers
contact_groups admins
alias Grid Engine
}
выглядит .. .
#cat hostname.cfg
define host{
use linux-server ; Name of host template to use
host_name hostname01x
hostgroups COT-Servers
contact_groups gecotadmins
alias FEA Preprod
}
Я использовал несколько методов для удаления такой записи, но ни один из моих алгоритмов не работает отлично.
Хотя параметр -i отсутствовал, но я понял это как im тоже «Seeder» sed -i.bak '/ define host/{: a; /} /! {N; ba};/hostname02x/d} «hotname.cfg отлично работает для меня ... Приветствия теперь будут переданы скрипту PHP;) –
вы можете подробнее рассказать о параметрах/define host/{: a; /} /! {N; ba} ;/hostname02x/d} ' –
@ KunalSaha Я обновил свой ответ. – SLePort