[96.12.15]

jgawkって

AWKはエイホ(Aho)、ワインバーガー(Weinberger)、カーニハン(Kernighan)の3人が作成したプログラミング言語で、3人の名前の頭文字を取ってAWK(オーク)と名付けられました。

基本的にはテキスト型のデータの1行への処理(どのパターンの行に、どのアクションを施すか)を記述しておくことで、読み込まれたテキストデータのすべての行にその処理を適用してくれるという言語です。

プログラムの書き方の基本は、'パターン { アクション }'です。たとえば、'{ print $1 }'なんて1行を書いておくと、テキストデータのすべての行の1番最初の文字列だけを抜き出してくれます(アクションの記述例)。また、'/awk/'と書くと、テキストデータの中で"awk"という文字列がある行だけを抜き出して表示してくれます(パターンの記述例)。

最初の例のように、パターンが省略された場合は、すべての行にアクションが施されます。2番目の例のように、アクションを省略すると、自動的にその行全体をprintするというアクションがとられます。

さらに、'{ print log($1) / log(2) }'と書いておくと、入力ファイルにある数の対数(底は2)が計算されます。この場合は、1行にひとつずつ数値を書いておくことになります(組み込み関数の入ったアクションの記述例)。

AWKは、C言語に似ていることや、インタープリタ型の言語であること、変数の宣言がいらないことなどのため、ちょいと書いてすぐ実行できるので、非常に重宝しております。おなじプログラムがPCでもEWSでも動くというのもいい点です。

このAWKを、GNUというフリーソフトウェアを作成・配布している団体が作成したものがGAWKです。さらに、それを日本語化したのがJGAWKなのです。PC用もUNIX用も、いろいろなところから入手できるものと思います。

トッパンから、「プログラミング言語AWK」という本が出ており、かなり詳しく例題なども出ています。

=====================================================
 【書 名】プログラミング言語AWK
 【著 者】エイホ/カーニハン/ワインバーガー著
            足立 高徳 訳
 【発行所】株式会社トッパン
 【発行日】1989/11/10
 【ISBN  】4-8101-8008-5
 【価 格】3400円(1990/06/15 第3刷の価格)
=====================================================
著者によると、「この本の第一の目的は、AWKが何であって、どうやれば効果的に使えるかを読者に伝授することである。 (中略) 読者は、1章から読み始め、いくつかの小さな例を自分自身で試してみるとよい」ということです。非常に例題の多い、わかりやすい本だと思います。

基本的に説明は1章と2章だけで、それ以降はすべて例題です。3章ではデータの検索、変換、変形、検証などの機能により、小さい個人的なデータベースの管理を行います。4章では、データベースからレポートを作成する方法、5章では、文書生成プログラムなど、6章では「小さな言語」として、特定の分野向けの特殊な言語を作ります。7章では、テストと効率評価を含むアルゴリズムの実験を行います。

そんなわけで、ちょこちょこと例題を試しながら読み進むと、知らぬ間にAWK使いになれます。(^^)

http://www.wakhok.ac.jp/~maruyama/Unix92/awk/awk.htmlというURLでも、AWKの紹介がされています。このURLはインターネットの検索機能で、「AWK」で検索すると、出てきたものです。


[Home] [Index] [覚書] [知研] [居酒] [徒然]