首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用sed更改特定组中的单词?

如何使用sed更改特定组中的单词?
EN

Unix & Linux用户
提问于 2023-01-31 13:34:35
回答 1查看 84关注 0票数 0

我需要在一个特定的define service部分中更改一个单词,其中service_descriptionNRPE - NTP_TIMEcontact_groupsopsgenie-sla1,我需要更改为opsgenie-sla2,我想使用sed命令来缩短我的工作,因为我需要在多个主机上这样做。下面是文件的一个片段;例如

代码语言:javascript
复制
define service{
        use                             generic-service

        service_description             NRPE
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              3
        check_interval           5
        retry_interval            2
        contact_groups                  opsgenie-sla1

        notification_period             24x7
        check_command                   check_nrpe_port_ssl
        }

    define service{
        use                             generic-service
        host_name                       dns1
        service_description             NRPE - NTP_TIME
        servicegroups                   ntp_checks
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              3
        check_interval           5
        retry_interval            2
        contact_groups                  opsgenie-sla1


        check_command                   check_custom_nrpe!check_ntp_time
        }
EN

回答 1

Unix & Linux用户

发布于 2023-01-31 15:57:36

这里有一个使用GNU sed的解决方案,但是您将丢失文件的正确缩进,最好使用Stéphane提供的解决方案:

代码语言:javascript
复制
sed ':a;N;$!ba;s/\n/ /g' <filename> | sed 's/\(define service{.*service_description\s*NRPE - NTP_TIME.*contact_groups\s.*\)opsgenie-sla1/\1opsgenie-sla2/g'
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/733814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档