はじめに

(講座「文系のためのawkプログラミング入門」)

awkはテキスト処理のための強力なプログラミング言語、あるいはスクリプティング言語です。汎用のC言語のように、コンピュータ上のどんな仕事でも、というわけには行きませんが、テキスト処理に特化しているために、この分野では、C言語などよりもずっと生産性は高いといえるでしょう。又、同じくテキスト処理を得意とするPerlが、最近ますます機能を拡張するとともにに、規模も大きくなって、使いこなすのがかなり難しくなりつつあるのに比べると、はるかに短い時間で、大きな収穫をあげられるのがawkです。awkとその姉妹ともいえる検索置換のエキスパートであるsed(これも習得はさらにやさしい)を学べば、テキスト処理の分野でこまることはなくなるでしょう。

「文系のための」と名づけたのは、コンピュータに苦手意識をもちやすい文系人間を励ますためでもありますが、本当をいうとプログラミングというのは、言葉を操ることであり、コンピュータと対話することであると考えれば、むしろ文系の仕事というのがふさわしいのです。数学や物理、化学などより、国語や英語の方が成績がよかったという人は自信をもってください。awk語は英語の習得に比べると何十分の一かの努力で成果がえられます。覚えるべき単語は100もありません。文法もわずかです。中学一年の間に覚える英語の何分の一かですんでしまうわけです。

ただ相手は、コンピュータですから融通がききません。人間相手であれば

He love music .

と、いえば理解してくれるでしょう。

しかし、コンピュータだと、それは文法が間違っている、と、てこでも動いてくれません。まるでききわけのない幼児と同じところがあります。そういう融通のなさとつきあう忍耐があれば、習得はさほど難しくはありません。

この講座は、awkのプログラミングの手法、文法やイディオムを中心に、主にどう使うかという点に焦点を当てた入門編です。筆者の経験からいうと、プログラミングに経験のないひとにとっては、最初の一歩が一番困難だからです。たとえばDOSのawkを手に入れても、いったいどう動かしたらいいのかは皆目検討もつきません。ダブルクリックしても一瞬DOS窓が開いてすぐに閉じてしまいます。ヘルプもついていません。まったく取っ掛かりすらみつかりません。これがエディタであれば、ウィンドが開いてそこに文字を入力して保存すればいい、ということはだいたいコンピュータを使っていれば推測できます。しかしプログラミングという領域がはじめてであれば、なにからはじめるのかすらわかりません。またもともとunix上で開発された言語であり、unixで使うことを前提に書かれた参考書はあっても、WinやMac上でどう使うかということが書かれた書物は殆どありません。かろうじてDOS用の解説書が筆者の知っている限りで一冊あるだけです。

従って、目標はawkを動かして、簡単な作業ができるようになるということと、そのためにawkというプログラミング言語の文法と語彙の最も重要なものを習得するということです。そうして、さらに将来複雑な作業をおこなう必要に迫られたときには、自力でawkの文献を読んで解決策を見出せるようになっていただきたいということです。

手元にawkの処理系を用意して実際に動かしてみてください。筆者のホームページからダウンロードできるようにしてあります。

ただ少し注意しておきますと、Windows上でawkを動かそうと思えば、現在ではDOS窓を開いてコマンドを打ち込むという面倒くさい方法をとらなければなりません。これが最初の障害になりますし、実際に能率よく仕事をこなそうと思えば、かなり鬱陶しい事になります。それで筆者は、コマンドプロンプトを使ったり、バッチファイルの作成などと言う面倒な作業なしで、WindowsのGUIの環境でawkを動かし作業できるように、awk用のインターフェイスを組み立てました。それを使うと、若干の作業のわずらわしさを免れることができます。「おーくの友だち」というユーティリティですが、これもこのホームページからダウンロードできるようにしてあるので、インストールして使ってください。(ダウンロードページ -> Winのおもちゃ

Mac上では、山下巌氏のすぐれたインターフェイス(JGAwk interface)があります。筆者はMacユーザーなので年来これを愛用しています。上に述べた「おーくの友だち」は、筆者がWin上で作業するときのために、このインターフェイスを模倣して作ったものです。Vectorなどからダウンロードできます

最後にawkのための参考書をあげておきます。

「プログラミング言語AWK」(エイホ・カーニハン・ワインバーガー共著、トッパン)

awkの開発者三名による最も権威ある解説書です。awkの名前はこの三人の頭文字から取られている。

「sed & awk プログラミング」(ドハティ著 ASCII)

awkと検索置換機能の強力な言語sedの解説書

「AWKを256倍使うための本」(志村・鷲北・西村共著、ASCII)

DOS上でのawkの使用法とプログラミング例の解説書

 

次回 目次 Home