Something
public text v1 · immutablesed -n "
:t
/define.*service.*{/,/}/ {
/}/!{
$!{
N;
bt
}
}
/service_description[[:blank:]]*${SERVICE}[[:blank:]]*\n/ {
# Comment out invalid services
# empty host_name and empty hostgroup_name
/host_name[[:blank:]]*\n/ {
/hostgroup_name[[:blank:]]*\n/ {
s/^/#/g
s/\n/\n#/g
}
}
# only empty host_name, no hostgroup_name
/host_name[[:blank:]]*\n/ {
/hostgroup_name.*\n/ ! {
s/^/#/g
s/\n/\n#/g
}
}
# only empty hostgroup_name, no host_name
/hostgroup_name[[:blank:]]*\n/ {
/host_name.*\n/ ! {
s/^/#/g
s/\n/\n#/g
}
}
# remove offending empty hostgroup_name
/#[[:blank:]]*hostgroup_name[[:blank:]]*\n/ !{
s/hostgroup_name[[:blank:]]*\n[[:blank:]]*//
}
# remove offending empty host_name
/#[[:blank:]]*host_name[[:blank:]]*\n/ !{
s/host_name[[:blank:]]*\n[[:blank:]]*//
}
p
}
}" test