Awkとは1991〜2年ごろに出逢って以来のつき合いで、それもけっこう 深いつき合いだったりします。マクロ研究 室でも使っていますね。
第一版の言語仕様と処理系が開発されたのが1975年だそうですから、 スクリプト言語、テキスト処理・パターン処理言語のハシリと言えるで しょう(パターン処理ではSnobolという言語が有名ですが、ぼくは触っ たことがありません)。
一時はかなりもてはやされました。特にMS-Windowsが普及する直前の 「PCの世界、DOSの世界」では、「Awkを使いこなして自分でがんがんデー タ処理を楽しもう。パワーユーザーになろう!」といった感じでちょっ とした流行になっていたものです。なんとコンソールを持たないマッキ ントッシュにも移植(と、フロントエンドの開発)されて、こちらでも 活用しました。自力で仕事のデータ処理に取り組む友人にAwkを勧めた りもしたものです。が、時が経ち、このごろでは超強力なPerlや、Ruby などのライバルに押されて地盤沈下しているように見えます。ぼくはそ んな風に感じていました。先の友人にも今ではPerlを勧めています。
先頃、いやいやそんなことはない、まだ現役だし、用途や使い方によっ ては他の言語よりもスマートで強力だぜと再認識して、このページを作 ることにしました。じっさい、ある種のシゴトをしたい時には実に気持 よくはまる言語なんです。
ここでは個個のプログラミングテクニックや言語仕様上の特徴に着目 するよりは、〈事例指向〉で行きます。「こんな問題をやっつけたい場 合にはAwkをこんな風に使うといいゾ」という紹介をしていければよい なと思っています。Awk自身がひとりでできることには限界があります が、シェルや外部コマンドに協力してもらうと凄い力を発揮したりする からです。
基本的に「1985年版Awk」を対象にします。Solarisならnawkといって いるヤツです。ときどきgawkだったりもします。とゆーか、本当はgawk の方がよいです(nawkなのはその時の事情のせい)。
なお、プログラムコードの各行の行頭についている行番号(": "まで) は参考のためのものであり、実際のプログラムにはつきません。
改作自由、瑕疵無保証です。