728x90
반응형
  • 문자열을 찾는 방법에 대해 작성 합니다. 

Grep 을 사용한 문자열 찾기 

  • 아래 테스트 로그를 이용해 문자열을 찾는 방법을 알아본다 .
  • test.log 파일 내용
--- 0 Error in 17 cases - ._130_line_3729_case
--- 0 Warning in 18 cases - ._143_line_7455_case
--- 0 Error in 19 cases - ._147_line_7455_case
--- 0 fails in 17 cases - ._130_line_3729_case
--- 0 Warning in 18 cases - ._143_line_7455_case
--- 0 Info in 19 cases - ._147_line_7455_case
--- 0 Info in 19 cases - ._148_line_7455_case
--- 0 Info in 19 cases - ._149_line_7459_case
--- 0 Info in 19 cases - ._150_line_7459_case
--- 0 Info in 19 cases - ._151_line_7459_case
--- 0 Info in 19 cases - ._152_line_7459_case

 

대소문자 구분없이 문자열 라인 찾기

# test.log 파일 에서 Error 또는 Warning 문자를 포함한 라인을 출력 하는 예제이다.
grep -in -E "Error|Warning" test.log

 

 위 예제에서 사용한 옵션은 아래와 같다. 

  • -i: 대소문자 구분 없이 검색
  • -n: 라인 번호 출력
  • -E: 확장된 정규 표현식 사용 
  • "Error|Warning": Error 또는 Warning 을 의미하는 정규 표현식 (둘 중 하나가 포함된 라인을 찾음)
  • test.log: 검색할 파일명

찾은 문자열을 분리해서 특정 숫만 출력 하기 

  • 정규식 과 sed 사용 
grep -o 'line_[0-9]\+_case' test.log | sed 's/[^0-9]*\([0-9]\+\)[^0-9]*/\1/g'
$ grep -o 'line_[0-9]\+_case' test.log | sed 's/[^0-9]*\([0-9]\+\)[^0-9]*/\1/g'
3729
7455
7455
3729
7455
7455
7455
7459
7459
7459
7459

 

찾은 문자열을 중복 제거하고 정렬 하기 

  • 정규식 과 sed 사용 + sort (정렬) + uniq(중복 제거) 
grep -o 'line_[0-9]\+_case'  test.log  | sed 's/[^0-9]*\([0-9]\+\)[^0-9]*/\1/g' | sort -n | uniq
$ grep -o 'line_[0-9]\+_case'  test.log  | sed 's/[^0-9]*\([0-9]\+\)[^0-9]*/\1/g' | sort -n | uniq
3729
7455
7459

 

 

 

728x90
반응형

+ Recent posts