gawk の元になっている AWK は Alfred V. Aho, Peter J. Weinberger, Brian W. Kernighan の 3 人により AT&T のベル研究所で作られたテキスト処理に適したプログラミング言語です。AWK という名前がこの 3 人の開発者の頭文字 (A, W, K) から付けられていることでも有名ですが、System V に搭載されて以来、UNIX の標準コマンドのひとつになっています。また、多くの OS で動作することも魅力のひとつで、UNIX はもちろん MS-DOS, MS-Windows さらには古い Macintosh や VMS, Amiga などでも動作しますので、プログラムの移植性は同じインタプリタ言語である Perl や Ruby をはるかに凌ぎます。
AWK の利点として、下記のような点が挙げられます。
こういった AWK の特徴に加えて、gawk では以下のような改善がされています。
AWK は以下のようなことを得意としています。
AWK は「おーく」と発音し、決して「A・W・K」と区切って読んではいけないことになっています。
*1 コンパイルされた環境には依存し、特に Think C でコンパイルされた gawk は srand() の戻り値が異ります。
AWK を使ったプログラムの中でも特異なプログラムを紹介します。
Valentin Hilbig 氏が AWKhttpd というものがあります。AWK 単独ではなく、inetd などのスーパー・サーバーを介して動作させます。また、このページも AWKhttpd にて動作しているそうです。
同様なものが NAIST の持橋氏の ahttpd です。/etc/passwd の情報から ~user 指定ができます。こちらも inetd などのスーパー・サーバーを介して動作させます。
Henry Spencer 氏による AWK のアセンブラです。入手は、ftp://ftp.freefriends.org/arnold/Awkstuff/aaa.tgz から可能です。
出雲氏が作成した CASL Assembler があります。出雲氏と言えば、ahttpd の持橋氏と同じ NAIST 出身で、Linux でも Timidity でお世話になっています。
Roger Rohrbach 氏による Lisp インタプリタで、その名も walk です。http://www.funet.fi/pub/archive/alt.sources/volume94/Jun/940601.09.gz にて入手できます。またマニュアルは http://cl.aist-nara.ac.jp/~daiti-m/etc/awk/walk.pdf にて PDF のマニュアルが入手できます。
これとは別に Awklisp と呼ばれるものがあります。
AWK によるアセンブラの作者 Henry Spencer 氏による AWK の nroff フォーマッター、つまり man コマンドです。入手は、ftp://ftp.freefriends.org/arnold/Awkstuff/awf.tgz から可能です。nroff がない環境でも AWK さえあれば man page が読めます。実際には MS-Windows などで AWK だけがインストールされてる場合に効果を発揮するかも知れません。
Oliver Tonnhofer 氏が AWK で作成した Wiki こと AwkiAwki です。AWK で CGI を作成した数少ない例です。
Gorry 氏の日記作成支援システム GNS (GORRY's Nikki System) です。AWK らしいアイデア・プログラムです。