중괄호를 찾기 위해 문자열을 일치시키고 중괄호에서 다른 문자열을 일치시키고 교체하십시오.

Yeshwanath

DataGuardDatadgSpace 문자열을 일치시키고 꽃 괄호 내에서 hostgroups 문자열을 찾고 hostgroups와 일치하는 줄에서 SERVER-DATABASE 문자열을 SERVER-NODE1-DATABASE로 바꾸고 싶습니다. 문자열과 일치하는 servicegroups 줄에는 영향을 미치지 않아야합니다. 나머지 코드.

이 코드를 파일에서 편집하고 싶습니다. 아래 옵션을 시도했습니다

sed -e '/./{H;$!d;}' -e 'x;/DataGuardDatadgSpace/!d;' test.shee 
    | sed '/hostgroups/s/\S*$/REPLACED/g'

하지만 파일에서 작동하지 않습니다.

define service { 
    use generic-pasv-svc 
    name SERVER-DATABASE-ArchdgSpace 
    service_description DataGuardArchdgSpace 
    hostgroups SERVER-DATABASE, xDB 
    servicegroups PASV, SERVER-stack, SERVER-DATABASE 
    max_check_attempts 3 
    check_command check_dummy! 2! "Passive check is stale" 
    contact_groups po 
    check_freshness 1 
    freshness_threshold 180 
    register 1 
} 

서비스 정의 { 
    generic-pasv-svc 
    이름 사용 SERVER-DATABASE-DatadgSpace 
    service_description DataGuardDatadgSpace 사용
    servicegroups PASV, SERVER-stack, SERVER-DATABASE 
    max_check_attempts 3 
    check_command check_dummy! 2! "Passive check is stale" 
    contact_groups po 
   hostgroups SERVER-DATABASE, xDB 
    check_freshness 1 
    freshness_threshold 180 
    register 1 
} 

define service { 
        use generic-pasv- 
        process 
        service_description ORA_DATABASE_HangDetect_DefunctBASE_HangDetect_Defunct ORA_HangDetect_DefunctProcess 서비스 
        그룹 SERVER-DATABASE
        servicegroups PASV 
        check_command check_dummy! 3! "패시브 서비스 검사가 오래되었습니다. Ora HangDetect 스크립트가 실행 중인지 확인하십시오." 
        freshness_threshold 600 
        contact_groups po 
        max_check_attempts 2 
        normal_check_interval 5 
        retry_check_interval 1 
        register 1 
}
SLePort

호스트 그룹 값이 샘플 코드가 SERVER-DATABASE아니라 있어야한다고 가정합니다 SERVER--DATABASE. 그렇다면이 sed를 시도해 볼 수 있습니다.

sed '/{/{:a;N;/}/!ba;/DataGuardDatadgSpace/s/\(.*hostgroups[[:space:]]*\)SERVER-DATABASE/\1SERVER-NODE1-DATABASE/;}' file

{사이의 모든 선 }은 패턴 공간에서 병합됩니다. 경우 DataGuardDatadgSpace블록에서 발견된다, SERVER-DATABASE의 값 hostgroups으로 대체된다 SERVER- NODE1-DATABASE.

-i파일을 제자리에서 편집 하려면 플래그를 추가하십시오 .

sed -i '/{/{:a;N;/}/!ba;/DataGuardDatadgSpace/s/\(.*hostgroups[[:space:]]*\)SERVER-DATABASE/\1SERVER-NODE1-DATABASE/;}' file

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관