grep을 사용하여 호스트 이름을 빼고 도메인을 제외하고 tnsnames.ora를 구문 분석합니다.

StackOverflow https://stackoverflow.com/questions/1417026

  •  06-07-2019
  •  | 
  •  

문제

tnsnames.ora 파일이 있습니다

DB_CONNECTION1=
   (description=
     (address=
         (protocol=tcp)
         (host=myhost1.mydomain.com)
         (port=1234)
      )
      (connect_data=
         (sid=ABCD)
         (sdu=4321)
  )
DB_CONNECTION2=
   (description=
     (address=
         (protocol=tcp)
         (host=myhost2.mydomain.com)
         (port=1234)
      )
      (connect_data=
         (sid=ABCD)
         (sdu=4321)
  )

키 호스트에서 myhost 값을 추출하기 위해 어떤 정규 표현식을 사용해야합니까?

Ouput should be 
myhost1
myhost2
도움이 되었습니까?

해결책

Grep이 전체 라인을 인쇄하면 다음과 같은 단계로 수행 할 수 있습니다.

grep "(host=" tnsnames.ora | cut -f 2 -d '=' | cut -f 1 -d '.'

분류하려면 :

  1. grep "(host ="tnsnames.ora- 항목이있는 모든 줄을 찾습니다 "(host ="
  2. cut -f 2 -d '=' -'='문자로 나누면 열 번호 2의 내용을 찾습니다.
  3. 컷 -f 1 -d '.' - ''로 나누면 열 번호 1의 내용을 찾습니다. 캐릭터

명령 체인을 모든 지점까지 실행하여 중간 결과를 볼 수 있습니다.

grep "(host=" tnsnames.ora | cut -f 2 -d '='

당신에게 줄 것입니다 :

myhost1.mydomain.com)
myhost2.mydomain.com)

그렇게하면 이러한 유형의 일을하기 위해 명령 세트를 쉽게 구축 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top