gpt4 book ai didi

linux - 搜索词然后搜索下一个词然后追加

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:39:31 25 4
gpt4 key购买 nike

我正在尝试使用 sed 在配置文件中附加主机名,因为我需要添加多个主机,所以我想将其自动化。我遇到以下情况:

示例输入文件:

#######################################################################
#
#Service: System Uptime

#######################################################################

define service{
use generic-service
host_name host1,host2,host3,host4,host5,host6,host7,host8,host9,host10,host11,host12,host13,host14,host15,host16,host17,host18,host19,host20,host21,host22,host23,host24,host25,host26,host27,host28,host29,host30
service_description System Uptime
is_volatile 0
check_period 24x7
contact_groups Test_group
notification_options c,w,r,u
check_command check_nt_uptime
max_check_attempts 3
normal_check_interval 1
retry_check_interval 1
notification_interval 120
notification_period 24x7
}

我试图实现的是将新主机附加到“host_name”行,但文件中出现了太多“host_name”,因此要为特定服务添加它,我搜索了“服务:系统正常运行时间”然后在从那里开始的第 7 行中,我搜索“host_name”并添加新主机。

我已经使用 sed 完成了我想做的事情:

sed   '/Service: System Uptime/{N;N;N;N;N;N;N;N;/host_name/s|$|,NewHost|}' input file 

现在的问题是,当其中有多个主机时,上面的 sed 命令会失败,它会中断行并附加主机。

有什么建议吗?

最佳答案

我不确定我是否理解您的问题,并且我无法根据您提供的配置文件片段重现它。话虽如此,我相信以下命令大致等同于您的命令,并且不依赖于基于“行数”的搜索。

sed   '/Service: System Uptime/,/host_name/{/host_name/s|$|,NewHost|}' input_file

关于linux - 搜索词然后搜索下一个词然后追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17341150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com