Разбор файла конфигурации Nagios - PullRequest
0 голосов
/ 12 декабря 2018

Мне нужно удалить из файла конфигурации Nagios некоторые службы.Вот выдержка:

define service{
    use                     generic-service
    hostgroup_name          d_drivespace
    service_description     D:\ Drive Space
    check_command           check_nt!USEDDISKSPACE!-l D -w 92 -c 97 
}

define service{
    use                     generic-service
    hostgroup_name          e_drivespace
    service_description     E:\ Drive Space
    check_command           check_nt!USEDDISKSPACE!-l E -w 92 -c 97 
}

Я уже пробовал с AWK:

gawk -v RS= -v 'ORS=\n\n' '!/\<D:\\ Drive Space\>/'

Проблема в том, что также E: \ Drive Space удаляется.

Любая помощь будет очень признательна, спасибо.

1 Ответ

0 голосов
/ 12 декабря 2018

Ваше требование не ясно, я считаю, что вы хотите напечатать только определенную группу строк, если да, то не могли бы вы, пожалуйста, выполнить следующие.Поскольку в моей системе нет gawk, поэтому я не смог проверить команду OP.

awk '
NF{
  val=val?val ORS $0:$0
}
/D:\\ Drive Space/{
  flag=1
}
/}/{
  if(!flag){
    print val
  }
  val=flag=""
}
END{
  if(val && !flag){
    print val
  }
}'  Input_file

Вывод будет следующим.

define service{
    use                     generic-service
    hostgroup_name          e_drivespace
    service_description     E:\ Drive Space
    check_command           check_nt!USEDDISKSPACE!-l E -w 92 -c 97
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...