+ -
当前位置:首页 → 问答吧 → 急,请教shell编程的一个问题。。。

急,请教shell编程的一个问题。。。

时间:2011-05-07

来源:互联网

这个是帮linux系统管理版块的一同学提的问题,请各位牛人帮忙,谢谢啦


我要根据host_name在下面的文件中提取一段内容。而shell脚本中是以回车或者空格为记录分隔符。但是我想要根据 host_name关键字(比如 mail )从文件中提取define 开始到 } 的内容要怎么做呢?
#define service {
#        host_name             136_stats
#        service_description   check_ssh
#        check_period          full_period
#        max_check_attempts    4
#        normal_check_interval 2
#        retry_check_interval  1
#        contact_groups        admins
#        notification_interval   10
#        notification_period     full_period
#        notification_options    u,c,r
#        check_command      check_ssh!-p 22 115.182.52.136
#        }


# Define a service to "check temp"

define service {
        host_name mail
        service_description check_temp
        check_period full_period
        max_check_attempts 4
        normal_check_interval 3
        retry_check_interval 2
        contact_groups admins
        notification_interval 10
        notification_period full_period
        notification_options u,c,r
        check_command nrpe!check_temp
        }

作者: shplpy   发布时间: 2011-05-07

awk -v RS=   '/ host_name mail/' urfile

作者: waker   发布时间: 2011-05-07

我又没看懂题目啊。。。汗

作者: zooyo   发布时间: 2011-05-07

  1. awk '/.*define service {.*/{print ""}1' urfile | awk -v RS= '/ host_name mail/'
复制代码

作者: Shell_HAT   发布时间: 2011-05-07



QUOTE:
awk -v RS=   '/ host_name mail/' urfile
waker 发表于 2011-05-07 20:30




    嗯,多谢,那如果是这种情况呢
Define a service to "check temp"
define service {
        host_name mail
        service_description check_temp
        check_period full_period
        max_check_attempts 4
        normal_check_interval 3
        retry_check_interval 2
        contact_groups admins
        notification_interval 10
        notification_period full_period
        notification_options u,c,r
        check_command nrpe!check_temp
        }

作者: shplpy   发布时间: 2011-05-07

回复 shplpy


4楼的如何?

作者: Shell_HAT   发布时间: 2011-05-07



QUOTE:
Shell_HAT 发表于 2011-05-07 20:49




    哈哈,这个不错,但是没考虑这种情况
define service {
        host_name mail
        service_description check_temp
        check_period full_period
        max_check_attempts 4
        normal_check_interval 3
        retry_check_interval 2
        contact_groups admins
        notification_interval 10
        notification_period full_period
        notification_options u,c,r
        check_command nrpe!check_temp
        }
aaaaaaaaaaaaaaaa


还请赐教,多谢啦~

作者: shplpy   发布时间: 2011-05-07