2013. 1. 30. 10:16 정규 표현식

정규 표현식 예제를 쭈욱 올릴 생각입니다.

 

1. D:\>egrep "TestStart|TestEnd" "D:\20130125.log" > D:\Result.log

 

 : D:\20130125.log 파일에서 TestStart 와 TestEnd 문자열을 포함한 라인들을 D:\Result.log 로 출력합니다.

 

2. egrep "Notify.State[()]+[ ,0-9A-Z]+, 2" "D:\20130125.log" > D:\Result.log

   egrep "Notify.State[() ,0-9A-Z]+, 2" "D:\20130125.log"

 

 : D:\20130125.log 파일에서 아래의 문자열들 중 2번 상태의 문자열을 포함한 라인들을 D:\Result.log 로 출력합니다.


  2013.01.25-15:12:42.453 INFO: Notify.State() 00000A68, 01830CFC, 2, 0, 0
  2013.01.25-15:16:50.773 INFO: Notify.State() 00000A68, 01830CFC, 3, 0, 0
  2013.01.25-15:16:50.801 INFO: Notify.State() 00000A68, 01830CFC, 4, 0, 0

 

[()]+ 의 의미는 대괄호 안의 '(' 문자와 ')' 문자중 하나가 반드시 포함되어 있다는 의미 입니다.

두개의 명령 라인은 같은 결과를 출력 합니다. 두번째 라인의 각각을 살펴 보면 '(', ')', ' ', '0-9', 'A-Z' 가 포함된 문자열 입니다.

 

3. egrep "Event\.openState" "D:\20130125.log"

   egrep "Event.openState" "D:\20130125.log"

 

 :  D:\20130125.log 파일에서 아래의 문자열들 중 Event.openState 문자열을 포함한 라인들을 화면에 출력 합니다.


  2013.01.25-15:12:42.424 PEERING DEBUG: Event.openState() 00000A68, 01830CFC, 8
  2013.01.25-15:12:42.424 PEERING DEBUG: Event(openState) 00000A68, 01830CFC, 13
  2013.01.25-15:12:42.453 PEERING DEBUG: Event(openState) 00000A68, 01830CFC, 3

 

두번째 명령의 검색어중 '.' 문자는 특수 문자 입니다. 따라서 "Event(openState)" 이러한 문자를 제외시키려면 '\' 문자를 앞에 붙여줘야 합니다.

 

4. D:\>egrep "([12][0-9]{3})\.([01][0-9])\.([0-3][0-9]-[0-2][0-9]:11)" "D:\20130125.log"

 

 :  D:\20130125.log 파일에서 날짜 형식중 YYYY.MM.DD-HH:11 의 시간을 포함한 라일들을 출력 합니다.

 

(1또는 2) + (0~9 가 3개) + (.) + (0또는1) + (0~9 1개) + (.) + (0~3 1개) + (0~9 1개) + (0~2 1개) + (0~9 1개) + (11)

 

 

 

posted by townone