sed -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