정규 표현식 예제를 쭈욱 올릴 생각입니다.
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)
'정규 표현식' 카테고리의 다른 글
정규 표현식 특수 문자 (0) | 2013.01.30 |
---|---|
정규 표현식(Regular Expression, 레젝스(regex)) - 텍스트를 찾고 조작하는데 쓰는 문자열 표현식 (0) | 2013.01.29 |