유닉스 에서
20101011142856 20101011142856.380 20101011142906.408 0 10.027 0 20101011142856.407 20101011142906.408 10.000 0.000 0.000 0 0.000 0.000 0 0.000 0.000 0 10.92.30.91 9093 01038166802 504 10 text/vnd.wap.wml 109 378 HTTP 0109CSSP3501148075444221638166802;37;6;13;05;0450 wapz.moneta.co.kr/paxnet/ngb/s11/s11.jsp?pageNo=1&changeTab=1&SU=0003221728&SM=08001A0&IPAGE=1&SMN=1040330603 0-0 1 0 -1 -1
20101011142902 20101011142902.501 20101011142907.680 0 5.179 0 20101011142902.522 20101011142907.680 5.158 0.000 0.000 0 0.000 0.000 0 0.000 0.000 0 10.148.46.212 9093 01047780988 200 10 text/vnd.wap.wml 208 1733 HTTP 01056SSI7351124029722111647780988;124;4;49672;454;2236 192.168.10.10/query 0-0 1 0 -1 -1
이런 문자열에서 (이게 한줄이다.) 5번째 항목이 5 이상인 항목들을 뽑아내라는 요청사항이
들어왔다.
저런 줄들이 100메가가 넘는 파일이 수백개였다. 얼마나 용량이 큰지 gz 로 압축이 되어 있어서
어떻게 해야 할지 감이 오지 않았다.
txt 파일을 gz 로 압축 되어 있던 것이다.
aaa.txt.gz 이런식으로 압축을 시켜놓았다.
이런 파일에서 저런 문제를 어떻게 해결할까?
내가 해결한 방법은
zcat 을 써서 파일 내용을 보게 하고 awk 라는 명령으로 if 문을 써서 프린트 하는 것이었다.
zcat 201010111420.txt.gz | awk '{if($5 > 5) print $0}' >> test.txt
이렇게 하면 깔끔하게 zcat 과 awk 를 연결 해서 나오게 되지 않나 싶다.
(당연히 테스트도 해보았다^_^ => 전체 내용을 출력하고 싶으면 print 다음에 아무것도 쓰지 않으면된다.)
20101011142856 20101011142856.380 20101011142906.408 0 10.027 0 20101011142856.407 20101011142906.408 10.000 0.000 0.000 0 0.000 0.000 0 0.000 0.000 0 10.92.30.91 9093 01038166802 504 10 text/vnd.wap.wml 109 378 HTTP 0109CSSP3501148075444221638166802;37;6;13;05;0450 wapz.moneta.co.kr/paxnet/ngb/s11/s11.jsp?pageNo=1&changeTab=1&SU=0003221728&SM=08001A0&IPAGE=1&SMN=1040330603 0-0 1 0 -1 -1
20101011142902 20101011142902.501 20101011142907.680 0 5.179 0 20101011142902.522 20101011142907.680 5.158 0.000 0.000 0 0.000 0.000 0 0.000 0.000 0 10.148.46.212 9093 01047780988 200 10 text/vnd.wap.wml 208 1733 HTTP 01056SSI7351124029722111647780988;124;4;49672;454;2236 192.168.10.10/query 0-0 1 0 -1 -1
이런 문자열에서 (이게 한줄이다.) 5번째 항목이 5 이상인 항목들을 뽑아내라는 요청사항이
들어왔다.
저런 줄들이 100메가가 넘는 파일이 수백개였다. 얼마나 용량이 큰지 gz 로 압축이 되어 있어서
어떻게 해야 할지 감이 오지 않았다.
txt 파일을 gz 로 압축 되어 있던 것이다.
aaa.txt.gz 이런식으로 압축을 시켜놓았다.
이런 파일에서 저런 문제를 어떻게 해결할까?
내가 해결한 방법은
zcat 을 써서 파일 내용을 보게 하고 awk 라는 명령으로 if 문을 써서 프린트 하는 것이었다.
zcat 201010111420.txt.gz | awk '{if($5 > 5) print $0}' >> test.txt
이렇게 하면 깔끔하게 zcat 과 awk 를 연결 해서 나오게 되지 않나 싶다.
(당연히 테스트도 해보았다^_^ => 전체 내용을 출력하고 싶으면 print 다음에 아무것도 쓰지 않으면된다.)
'Linux Unix' 카테고리의 다른 글
[ Linux ] 쉘 스크립트 시간 표현 및 시간 계산 (1) | 2011.01.08 |
---|---|
[ Linux ] 쓰레드 최대 생성 갯수 확인 (0) | 2010.10.19 |
유닉스 환경에서 32 비트인지 64 비트인지 확인법 (0) | 2010.06.17 |
유닉스로 vi 사용시 "단말기 폭 초과" 메시지 대처법 (0) | 2010.05.07 |
(98)Address already in use: make_sock: could not bind to address [::]:80 오류 대처법 (3) | 2010.05.06 |
댓글