Awkことはじめ

written by がいすと

1 はじめに

そもそも、awkなんて言語を知ったのはかなりの偶然でした。数年前に大学の生協でコンピュータ本をあさっていた私が、たまたま手にした一冊の本がきっかけでした。それが「プログラミング言語awk」という本だったのです。

当時、私はある簡単なデータベースのような処理を実現させるために、pascalやらaccessやらを囓りながら悪戦苦闘していましたが、これといってうまい実装ができずにいました。Pascalで組むには荷が重かったし、リレーショナルデータベースは勉強不足のために設計しづらく、ちょっと作っては放り出していました。

そんな中、「プログラミング言語awk」の見出しには、「テキスト処理」「データベース」といった言葉が踊っていたので、せっかくなので使ってみよう、と思い、その本を購入したわけです。インターネットなんて便利なモノを使いだす前のことだったのですが、幸い、手元にはあのvecterのオンラインソフト何千本とかいうCD-ROMが(懐かしいのう・・)あったので、そいつでawkのシステムをパソコンに放り込みました。

さて、準備完了。Awkで最初に出てきたプログラムは、こんなモノでした:

テキストで作成した表から、各行について、1) 一列目、
2) 二列目と三列目の積を、出力しなさい。

例を示してみましょう。こういう変換です。

A 800 1 A 800
B 1000 2 B 2000
C 800 5 C 4000
D 1200 30 D 36000

さて、普通はどうやって解くでしょうか。PascalやCでやるとしたら、テキストファイルを開いて、スペースまで読み込むことでそれぞれの項目を抽出する、という作業が 必要です。ですからこんな簡単なことでも結構ソースは大きくなります。

ではawkで書くとどうなるかといいますと、


{print $1,$2*$3}

この一行だけです。はじめ見たときは目が点になったのは言うまでもありません。この気楽さがawkの魅力です。