May 2024
Intermediate to advanced
276 pages
3h 51m
Japanese
ここまでで読者は Awk を使いこなすパワーユーザに成長しただろう。少なくとも戸惑うばかりの奧手な初心者 (awkward beginner) ではないだろう。本書で取り上げた例から学び、自身でもコードを書くうちに、なぜ Awk プログラムはこうなっているのかと興味が湧き、もっと良いものにしたいと考えたこともあるかもしれない。
本章ではまず Awk プログラミング言語の歴史を簡単に述べ、その長所、短所について述べる。次に Awk プログラムの性能を探求し、大きくなりすぎたプログラムの形を変える方策をいくつか提示する。
Awk の開発を始めたのは 1977 年 (昭和 52 年) のことだった。当時の Unix プログラムで正規表現を使用できたのは、テキストファイルのみを検索する grep と sed しかなく、また、一致した行はそのまま出力するか、sed で置換できるだけだった。フィールドも数値演算もできなかったのだ。当時の著者陣の目標は、フィールドを認識するパターンスキャン言語だったと記憶している。フィールドに一致するパターンと、フィールドを処理できるアクションだ。当初は、プログラムの入力検証や、レポート生成、他のプログラムへの入力を目的に、データを変形させられれば十分だった。
1977 年当時のバージョンは、「1章 Awk チュートリアル」に挙げたようなごく短いプログラム用の言語設計にすぎず、2、3 の組み込み変数 / 関数しかなかった。さらに言えば、ほとんど説明がなくとも身近な同僚が使えれば良い程度の設計だったのだ。正規表現はすでに慣れていた egrep からの流用だし、また他の文や文法などはやはりすでに使用していた C 言語からの流用だ。ちなみに ...