GNU Awk 사용자 가이드/시작하기
위키책, 위키책
| 내용을 보다 알차게 한다는 전제조건 밑에서 참여자께서는 이 문서를 재편집하실 수 있습니다. 누가 언제 마지막으로 글을 썼으며 그리고 쓰고 있는지는 문서역사를 살펴 보시기 바랍니다. |
|
| 번역이 직설적입니다. 보다 아름다운 한국어... | |
Arnold Robbins와 나는 오랜 친구다. 우리는 상황에 의해 11년 전에 우리가 가장 아끼는 프로그래밍 언어인 AWK를 소개했었다. 그 환경은 2년 전에 시작되었다. 난 새로운 직업에 종사하고 있었고, 구석자리에서 Unix 컴퓨터의 코드를 뽑은 것을 알리고 있었다. 아무도 그 것을 어떻게 사용하는지 알지 못했고, 그 것은 나도 마찬가지였다. 하지만, 2년이 지난 후에 그 것은 구동되고 있었고, 난 그 컴퓨터의 유일무이한 사용자가 되어 있었다. 그 때부터, 나는 통계학자로부터 Unix 프로그래머로 바뀌었다.
유닉스에 관한 책을 찾아 도서관과 서점을 찾는 과정 속에서, 난 AWK 와 관련된, a.k.a.라는 회색 책을 찾아냈다. Aho, kernighan, Weidnberger의 이름을 따서 AWK라는 프로그래밍 언어의 이름이 정해졌다. AWK의 간단한 프래그래밍 패러다임-내용물의 패턴을 찾아 넣고 수행하는-은 종종 복잡하고 지루한 자료를 겨우 몇줄의 코드로 조작할 수 있게 해 주었다.
안타깝게도, 내 컴퓨터의 awk는 책 속에 소개되어 있는 프로그래밍 언어로써의 awk를 구현하기에는 제한적이었다. 나는 내 컴퓨터의 awk가 "오래된 awk"이고 AWK 책은 "새로운 AWK"를 소개하고 있음을 발견했다. 난 이 것이 보편적이라는 것을 배웠다; 오래된 버전은 옆으로 비키거나 그의 이름을 포기하는 것을 거부하는 것이라는 것을. 만약 어떤 시스템이 새로운 awk를 가진다면, 그 것은 변함없이 nawk로 불리우고, 몇몇 시스템이 그 것을 갖는다. 새로운 awk를 갖는 가장 좋은 방법은 GNU General Public License로부터 사용허가를 얻은, David Trueman과 Arnold가 쓴 새로운 버전의 awk를 prep.ai.mit.edu.gawk로부터 gawk의 코드를 ftp를 통해 얻는 것이다.
(부가적으로 말하자면, 새로운 awk를 찾는 것은 더 이상 어려운 것이 아니다. 어떤 시스템이라도 다운로드 받을 수 있다; 나의 아내 역시 그녀의 VMS 박스에서 gawk를 사용한다.)
나의 유닉스 시스템은 벽으로부터 떼어진 상태에서 시작되었다; 그것은 확실히 네트워크로 연결되어 있지 않았다. 그래서, 명백히 gawk과 Unix 커뮤니티의 존재는, 나 자신의 것인 mawk라 불리우는 것에 대한 서술을 하게 하였다. 끝내기 전에 난 gawk라는 것에 대해 알게 되었고, 하지만 그 것은 멈추기에는 너무나 늦읒 상태였다.
내가 포스팅을 시작한지 며칠 뒤, 난 Arnold로부터 자신을 소개하는 친절한 메일을 받았다. 그는 우리가 디자인과 알고리즘과 POSIX standard에 대한 설계도를 붙이는 것에 관한 것을 공유하는 것을 제안했고, 그래서 나는 공개되어 있는 AWK 책에 언어의 확장을 지원하는 mawk를 업데이트 할 수 있었다.
솔직히, 우리의 역할이 역전되어 있었다면, 나는 그 것을 열어보지 않았을 것이고 우리는 아마도 절대 만나지 않았을 것이다. 나는 우리가 만났다는 것이 기쁘다. 그는 AWK의 완벽한 전문가였고 매우 좋은 사람이다. Arnold는 그의 방대한 양의 전문 식견과 Free Software Foundation에 대한 시기를 정하는 것에 큰 기여를 하였다.
이 책은 gawk의 참조 매뉴얼이고, 하지만 이 것의 핵심은 이 책은 AWK 프로그래밍에 관한 책이고 많은 대중에게 공개될 것이라는 것이다.
반면에, 잘 알려진 AWK 프로그래머는 AWK의 기본적인 관용구의 힘을 강조하는 실전적인 프로그램의 부유함을 공부할 수 있다: 데이터 주도 조정-흐름, 정규 표현과 맞는 패턴, 그리고 연합하는 배열. 새로워 보이는 그 것들은 특별한 /inet 파일을 경유한 네트워크 프로토콜의 gawk 인터페이스를 시험해본다.
이 책의 프로그램은 AWK 프로그램이 대개 C로 쓰여진 것보다 개발하는데 더 작고 빠르다는 것을 명백히 보여준다.
새로운 pgawk은 프로그램 실행 카운트를 산출한다. 난 최근에 n개 라인의 input을 갖는 알고리즘을 실험했었고, 이론상으로는 ~C n lon n의 결과가 나왔어야 하지만 ~ C n^2 퍼포먼스가 나타났다. 몇 분 동안 곰곰히 awkprof.에 대해 생각해보니 문제의 윤곽을 한줄의 코드로 정확히 나타냈다. pgawk는 나의 프로그램의 도구상자에 훌륭히 추가되었다.
Arnold는 10년의 경험과 AWK 프로그램을 사용하면서 얻은 것을 적었고, 나는 gawk를 이 책에서 발전 시키고 있다. 만약 네가 AWK를 사용하기를 원하고 배우기를 원한다면, 이 책을 읽어라.