티스토리 툴바

awk의 힘

netj/IT 2008/07/06 13:25 posted by netj
그동안 awk의 이름 때문에 일부러 외면해왔는데, 그 강력함을 경험하고 이제부턴 차별없는 사랑을 주기로 했습니다. 참고로, AWK는 만든이들의 이름 앞 자를 따서 지은 이름입니다: Aho, Weinberger, 그리고 Kernighan. mawk의 man page의 BUGS에도 나와있듯이 이름 자체가 버그죠 -_-
       Implementors of the AWK language have shown a consistent lack of imagi-
       nation when naming their programs.
이름이야 어찌됐든 최근에 발견한, awk를 써야만 하는 이유를 공유합니다.



다음과 같은 자료에서 첫번째 열이 같은 행들을 각각의 파일로 모으고 싶다면 어찌해야 할까요?
a 12939 23750 21976
b 801 10088 21396
c 24235 15298 30110
d 9419 17099 30577
a 19962 28347 31901
b 27737 29927 175
c 3605 21851 16964
d 21394 18931 26778
a 17152 24926 29887
b 10947 22651 1864
c 31109 11037 29084
d 24237 11857 29780
a 14770 14522 25705
b 15877 22796 10462
c 16461 11017 9047
d 18929 5487 8321
물론 Perl이든 Python이든 Ruby든 C든 뭐로든 쉽게 해결할 수 있는 문제입니다.
그러나 우리는 이런 사소한 문제에 시간을 쓸 수 있을만큼 한가한 사람들이 아닙니다.
그래서 awk가 필요하더군요:
awk '{print $2 $3 $4 >>$1}'


이름은 잘 지어야한다는 생각과 함께,
훌륭한 도구를 놓치지 않으려면 선입견을 버려야겠다는 반성을 해봅니다.

Happy Hacking! :^)
-netj
TAG ,