RIGHT:寄稿:東條遼平 * 適材適所の真骨頂 [#e6dfd420] C言語のような言語はさまざまなソフトウェアを作ることができ、万能ではあるのですが、ちょっとした処理をさせたいときに非常に面倒な場合があります。特にテキスト操作などに関してはAwkは大変力を発揮します。例えば数値が各行1列ずつ並んでいるファイルがあり、それぞれをかけ算するような処理をしたいと思ったとします。C言語であればfopenでファイルをオープンし、 fgetsで1行取得し、atoiで数値に直し、変数に入れてかけ算し、それをfor文で回し、 printfで出力してfcloseでファイルを閉じる事になるでしょう。これでは何百行もあるデータならともかく10行程度ならば電卓で計算してしまいたくなります。電卓より遥かに優れた計算機内のデータを計算するのに電卓を使うとは皮肉なものです。これがAwkであればたったの1行で結果が求められます。 Awkはプログラムのソースファイルを作って実行することもできますが、その手軽さ故にコマンドライン上に直接書いて実行することが多いと思います。大体使い捨ての1行プログラムになりますが、上の様な処理であれば、プログラムを考え始めてから結果が出るまで数秒で終わると思います。電卓で1つの数値を入力している間に終わりそうです。 GUIのプログラムしか扱わないWindowsユーザーにはそぐわないでしょうが、日頃からCUIも使うLinuxユーザーであれば知っていて損はない言語だと思います。また、Linuxには最初からAwkは入っていると思いますのですぐに使うことができます。 Awk言語はその製作者の3人の名前Aho、Weinberger、Kernighanそれぞれの頭文字を取っています。 * C言語によく似たスクリプト言語 [#tddc08b9] ちょっとした処理に使いたいのに文法を覚え直すのも面倒です。 Awkの文法はC言語とほぼ同じなので分岐やループもそのまま使えるので、 Cをさわった事がある人であればすぐに使うことが出来ると思います。また正規表現や連想配列が使えるのも特徴です。自分はデータをgnuplotに放りこむ前の処理に使っています。