2013-10-08

grep으로 특정 기간의 log를 출력하기

여기 더미 가짜 로그가 있다.

### file: grep-test
2013-01-09 19:58:33 install fff
2013-02-09 19:58:35 install ffff
2013-03-09 19:58:35 install aaaaaa
2013-04-09 19:58:36 install 2e2e
2013-05-09 19:58:36 install 3r3r
2013-06-09 19:58:37 install 3r3r
2013-07-09 19:58:37 install fefef
2013-08-09 19:58:37 install 4r534r
2013-09-09 19:58:38 install ef
2013-10-09 19:58:39 install 3r3r
2013-11-09 19:58:39 install fef
2013-12-09 19:58:39 install grgrgr
###

코드를 실행한다. 10월부터 12월까지의 로그다. 기간은 /^2013-1[012]-/로 표현된다.

grep ' install' grep-test | awk '/^2013-1[012]-/ { print $0 }'

결과가 출력 된다.

2013-10-09 19:58:39 install 3r3r
2013-11-09 19:58:39 install fef
2013-12-09 19:58:39 install grgrgr

응용1: 05부터 07까지 출력
grep ' install' grep-test | awk '/^2013-0[5-7]-/ { print $0 }'

응용2: 09부터 12까지 출력
grep ' install' grep-test | awk '/^2013-(09|1[0-2])-/ {print $0;}'

대략 감 잡았다. 도움을 주신 최호진 님께 감사드린다.

awk는 perl에도 영감을 준 중요한 언어(?)라고 한다. grep과 같이 쓰면 파싱 하는데 좋을 것 같다.

No comments:

Post a Comment