Introduction

Sed 가 텍스트를 처리하는데 있어서 훌륭한 툴이기는 하지만 한가지 단점이 연산을 할수가 없다는 것입니다. 가령 foo 라는 단어가 몇번 나왔는지 센다거나 숫자로된 스트링을 모두 더해서 합계를 구하려고 할때는 awk 를 사용해야 합니다. awk 는 sed 와 같이 텍스트 스트림을 입력받아 처리할 수 있는 스트림 에디터인데 내부적으로 연산자가 있고 변수와 함수를 사용할 수 있어서 필요한 데이터 조작을 쉽게 처리할 수가 있습니다. ( sed 가 원시적인 프로그래밍 언어라면 awk 는 그보다 좀 더 발전된 형태? )

awk 의 장점은 기존에 프로그래밍 경험이 있고 shell script 에 대한 지식이 있으면 실제 사용하는데 많은 시간이 들지 않는다는 것입니다. 예를 들어 입, 출력을 shell 에서와 같이 pipe 와 redirection 문자를 이용해 처리합니다. awk 는 실행하기 위해 꼭 데이터 입력 스트림이 필요하지 않습니다. BEGIN 블록을 이용하면 입력 스트림 없이도 독자적으로 스크립트를 실행시킬 수가 있습니다. awk 는 텍스트 조작에 필요한 스트링 함수 외에도 numeric, i/o, time 같은 함수들과 socket 연결 기능도 제공하므로 데이터 스트림을 처리할 때뿐만 아니라 독립적인 프로그램 작성용으로도 활용할 수가 있습니다.

awk 는 1970년대에 Bell 연구소에서 Alfred Aho, Peter Weinberger, Brian Kernighan 세 사람에 의해 처음 만들어졌는데 awk 라는 이름은 이 세 사람 이름의 첫 글자를 따서 만들었다고 합니다. Brian Kernighan 은 awk 를 만든 이유에 대해 "필요한 프로그램을 단 몇 줄의 라인으로도 쉽게 만들 수 있게 하려고.." 라고 했는데요. 실제 awk 를 사용해보면 이 말의 의미를 알수가 있습니다.

Ubuntu Linux 에서 GNU Awk version 4.2.1 를 이용하여 설명하였습니다.

필요에 따라 수시로 업데이트 되므로 파일을 다운로드하는 것보다는 웹에서 보는 것이 좋습니다.
흰색 바탕이 너무 밝을 경우 좌측 상단에 보면 어두운 바탕으로 테마를 변경할 수 있습니다.
( 참고로 페이지는 Night 모드에서 작성하였습니다. )