gawk
をインストールする
この付録では、サポートされている様々なプラットフォームにgawk
をイ
ンストールするやり方を説明する。本来の開発者はUNIX(といつかは、GNU)をサ
ポートし、他のプラットフォームに対する移植は寄付(contribute)によって行わ
れている。gawk
の配布キット中にある`ACKNOWLEDGMENT'というファ
イルには各プラットフォームへの移植者とその電子メイルアドレスがリストアッ
プされている、彼らの名前はセクション 問題やバグの報告を参照.
にもある。
gawk
の配布パッケージ
このセクションではまずgawk
の配布パッケージの入手と展開の方法。
そしてサブディレクトリ中のファイルについて説明する。
gawk
Distributiongawk
を注文することもできる。
ソフトウェアの配布はUNIX、MS-DOS、VMSに対するものを
テープかCD-ROMで受けることができる。
注文先の住所は
直接 FSF に注文することは、FSFに対する援助となり、 また、より多くのフリーソフトウェアの生産の一因になる。Free Software Foundation
59 Temple Place--Suite 330
Boston, MA 02111-1307 USA
Phone: +1-617-542-5942
Fax (including Japan): +1-617-542-2652
E-mail:gnu@gnu.org
gnudist.gnu.org
というホストの`/gnu/gawk'というディレクトリ
から匿名ftpを使ってgawk
を入手することができる。
以下にGNUソフトウェアを入手できるftp
サイトの一覧を載せる。
"site:
directory"のような形の場合、
directoryはGNUソフトウェアが置かれているディレクトリを
表わしている。
あなたがいる場所に地理的に近いサイトを使うのが良いだろう。
cair-archive.kaist.ac.kr:/pub/gnu
ftp.cs.titech.ac.jp
ftp.nectec.or.th:/pub/mirrors/gnu
utsun.s.u-tokyo.ac.jp:/ftpsync/prep
archie.au:/gnu
archie.oz
or archie.oz.au
for ACSnet)
ftp.sun.ac.za:/pub/gnu
ftp.technion.ac.il:/pub/unsupported/gnu
archive.eu.net
ftp.denet.dk
ftp.eunet.ch
ftp.funet.fi:/pub/gnu
ftp.ieunet.ie:pub/gnu
ftp.informatik.rwth-aachen.de:/pub/gnu
ftp.informatik.tu-muenchen.de
ftp.luth.se:/pub/unix/gnu
ftp.mcc.ac.uk
ftp.stacken.kth.se
ftp.sunet.se:/pub/gnu
ftp.univ-lyon1.fr:pub/gnu
ftp.win.tue.nl:/pub/gnu
irisa.irisa.fr:/pub/gnu
isy.liu.se
nic.switch.ch:/mirror/gnu
src.doc.ic.ac.uk:/gnu
unix.hensa.ac.uk:/pub/uunet/systems/gnu
ftp.inf.utfsm.cl:/pub/gnu
ftp.unicamp.br:/pub/gnu
ftp.cs.ubc.ca:/mirror2/gnu
col.hp.com:/mirrors/gnu
f.ms.uky.edu:/pub3/gnu
ftp.cc.gatech.edu:/pub/gnu
ftp.cs.columbia.edu:/archives/gnu/prep
ftp.digex.net:/pub/gnu
ftp.hawaii.edu:/mirrors/gnu
ftp.kpc.com:/pub/mirror/gnu
ftp.uu.net:/systems/gnu
gatekeeper.dec.com:/pub/GNU
jaguar.utah.edu:/gnustuff
labrea.stanford.edu
mrcnext.cso.uiuc.edu:/pub/gnu
vixen.cso.uiuc.edu:/gnu
wuarchive.wustl.edu:/systems/gnu
gawk
は
GNU Zipプログラム、gzip
で圧縮したtar
ファイルとして
配布されている。
配布キットを受け取ったら(たとえば`gawk-3.0.4.tar.gz')、
最初にgzip
を使ってファイルを伸長し、さらにtar
を使って
展開する。これを以下のようなパイプラインにgawk
の配布キットを
通すことでできる。
# System Vでは、tarのフラグに'o'を追加する gzip -d -c gawk-3.0.4.tar.gz | tar -xvpf -
これにより、`gawk-3.0.4'という名前のディレクトリが カレントディレクトリに作成される
配布キットのファイル名は`gawk-V.R.n.tar.gz'.のよ
うな形式であり、Vはgawk
のメジャーバージョンをRはV
でのリリース番号を、そしてnは小規模なバグ修正などが行われた
パッチレベルを表わしている。現在のパッチレベルは4
であるが、配布キット を入手するときにはもっとも高いバージョン、リリース
番号、パッチレベルの
ものを入手すべきである(リリース番号が90以上のものは"ベータ"レベルであり、
non-production softwareであることを表わている。実験することを考えていな
いかぎり、このようなバージョンを入手すべきではない)。
もしUNIXシステムを使っていないのなら、そのシステム向けに アレンジされたものを入手して展開する必要があるだろう。 あなたのそばにいるエキスパートに相談するのが良いだろう。
gawk
Distribution
gawk
の配布キットには、幾つかのCソースファイル、
ドキュメントファイル、
コンフィギュレーションに関連したファイルとサブディレクトリ
(セクション UNIX上での gawk
のコンパイルとインストールを参照)、
UNIX以外のオペレーティングシステム用のサブディレクトリと
ファイルがある。
gawk
の実際のソースコードである。
gawk
のため、
その他のファイルは様々なハードウェア、ソフトウェアの
ためのものである。
gawk
が既に移植され、test suiteの実行も成功して
いるシステムのリスト。
gawk
の変更点のリスト。
gawk
の性能上の限界となる項目のリスト。
これらのほとんどのものはハードウェアやオペレーティングシステム
ソフトウェアによるもので、gawk
それ自身の限界ではない。
awk
の仕様で正しくないところと、
gawk
がその問題をどのように厚かっているかの説明
gawk
がAI(Artificial Intelligence, 人工知能)プログラミングに
向いた言語であることを示す短い発言。
awk
リファレンスのための、troff
ソース。
GNU troff (groff
)のような新しいバージョンのtroff
は
カラーバージョンを生成することが要とされる。あなたの使っているのが
古いtroff
であった場合の操作説明は`README.card'という
ファイルを参照のこと。
gawk
を説明するマニュアルページのtroff
のソース。
これはUNIXユーザーの便宜のため配布されている。
makeinfo
を使用する。
igawk
プログラムに関して説明している
マニュアルページのtroff
ソース。
gawk
を様々な
UNIXシステム用にコンフィグレーションするときに使用するものである。
詳しい説明は
セクション UNIX上での gawk
のコンパイルとインストールを参照.
configure
が`Makefile'を生成するのに使用する
`Makefile.in'が含まれる。gawk
の作成手順の一部として、
セクション awk
の関数ライブラリを参照,
からライブラリ関数が、
セクション ライブラリを使う簡単な方法を参照,
からigawk
プログラムが、そ
れらを使用するためにファイルの展開が行われる。
gawk
を作成するときに必要なファイル。
詳しくは
セクション Atari STでの gawk
のインストールを参照.
gawk
を作成するときに必要なファイル。
詳しくは
セクション MS-DOS および OS/2 でのインストールとコンパイルを参照.
gawk
を作成するときに必要なファイル。
詳しくは
セクション VMS上でのgawk
のコンパイルとインストールを参照.
gawk
のテスト用スクリプトのセット。
作成したgawk
に対してテストを実行するには、gawk
の
トップディレクトリから`make check'とタイプすれば良い。
gawk
が`make chekck'で行ったテストに合格すれば、
移植(またはインストール)が成功したと考えてよい。
gawk
のコンパイルとインストール
通常は、gawk
をコンパイルとインストールを行うには
たった二つのコマンドをタイプするだけでできる。しかし、
あなたの使っているのが一般的なシステムでない場合、
あなた自信でgawk
をconfigureする必要があるかもしれない。
gawk
for Unix
gawk
の配布キットを展開した後で、`gawk-3.0.4'へ
cd
する。gawk
はconfigure
プログラムを実行することに
より、使用しているUNIXシステム用に自動的にコンフィグレーションを行う。
configure
はBourne シェルのスクリプトであり、GNU の
autoconf
を使用して自動的に生成されたものである
(autoconf
ソフトウェアは、Free Software Foundationから入手できる
Autoconf--Generating Automatic Configuration Scripts,
で詳しく説明されている)
gawk
のコンフィグレーションは、単にconfigure
を実行するだけである。
sh ./configure
これにより使用しているシステム用に調整された`Makefile' と
`config.h'が作成される。`config.h'というファイルは使用してい
るシステム に関する様々な項目を記述している。あなたは`Makefile'中
にあるコンパイラに渡すコマンドラインオプション(最適化のレベルとかデバ
ッグ用にコンパ イルするとか)を制御するCFLAG
変数を変更したくなる
ことがあるかもしれない。
その代わりに、CC
や CFLAGS
のようなmake
の変数の
大部分に対しては、configure
の実行するときにコマンドラインで
指定することで、(オプションなどの)追加を行うことができる。
CC=cc CFLAGS=-g sh ./configure
詳しくはgawk
の配布キットの`INSTALL'というファイルを
参照のこと。
configure
を実行した後で、編集された`Makefile'を
make
のようにして使用して
少し待てば、gawk
の実行ファイルができあがる。
それですべては終わり!
(もしこの手順がうまくいかなければ、バグレポートを送って欲しい。
セクション 問題やバグの報告を参照.)
(This section is of interest only if you know something about using the C language and the Unix operating system.)
gawk
のソースコードは、通常可能な限り標準に従おうとする。これは、
gawk
はANSI 標準Cライブラリや、POSIX 標準オペレーティングシステムイ
ンターフェースで規定されているライブラリ関数を使用するということである。
ANSI Cコンパイラを使っているときには、関数プロトタイプはコンパイル時のチ
ェックをより厳密にするために使われる。
多くのUNIXシステムでは、ANSIとPOSIXを両方ともサポートしているということ
はない。gawk
配布キットの`missing'というサブディレクトリには、
そういった欠けていることが多いサブルーチンを置き換えるものが入っている。
configure
によって作成される`config.h'というファイルは、gawk
をコンパイルしようとしている特定のオペレーティングシステムの機能を説
明する定義から構成されている。このファイルによって記述されることは三つあ
り、それは正しくインクルードできるように使用できるヘッダーファイル、使用
しているCライブラリで実際に使える標準関数、その他のそして使用しているUNI
Xの種々雑多な事実、という三つである。たとえば、構造体stat
に@code
{st_blksize}という要素がなかったとすると、`HAVE_ST_BLKSIZE'が
undefineされる。
`config.h'.
Cコンパイラがconfigure
を失敗させるようなことがありうるが、それは
おそらくライブラリ関数が使用できなくてエラーになるようなことがなかったと
きだろう。これに対処するために、、`custom.h'というファイルを編集す
ることができる。あなたの使うシステムに適切な#ifdef
を使い、
configure
が定義すべきだがそうなっていない定数を#define
し、
あるい はconfigure
定義すべきでないのに定義されているような定数を
#undef
にする。`custom.h'は`config.h'により自動的にインク
ルード される。
なにかの理由であなたのシステムではautoconf
が作成したconfigure
プログラムがうまく働かない可能性がある。このような問題に直面した場合
には、`configure.in'というファイルをautoconf
の入力にする。あ
なたはこのファイルを変更することもできるし、あなたのシステムできちんと動
作する新しいconfigure
を生成するこもできる。gawk
のコンフィ
グレーションで起きた問題のレポートの方法は、
セクション 問題やバグの報告を参照.。
同じ方法が、`configure.in'や`custom.h'の更新についても使用できる。
gawk
のコンパイルとインストール
このセクションでは、VMSの元でのgawk
のコンパイルと
インストールの方法を説明する。
gawk
on VMS
VMSの元でgawk
をコンパイルするために、必要なすべてのCC
コマ
ンドとLINK
コマンドを発行するDCL
コマンドプロシージャ、
MMS
ユーティリティで使うための`Makefile'がある。ソースディレ
クトリから
$ @[.VMS]VMSBUILD.COM
もしくは
$ MMS/DESCRIPTION=[.VMS]DESCRIP.MMS GAWK
のどちらかを使用する。 使用するCコンパイラに応じて、以下のテーブルにある手順の 何れか一つを使用する。
CC/OPTIMIZE=NOLINE
を使用する。
gawk
はVAX C V3.2、GNU C 1.40、GNU C 2.3
を使ったVAX/VMS 5.5-1 の元でテストされた。
VMS V4.6以上のものでは変更なしで動作するはずである。
gawk
on VMS
gawk
をインストールするために、ドル記号で始まるシンボルを持った
DCL
の"foreign" コマンドを必要とする。
$ GAWK :== $disk1:[gnubin]GAWK
(`$disk1:[gnubin]'を実際にgawk.exe
が置かれている場所に置き換
える。)このシンボルはgawk
を実行したいと考えるすべてのユーザーの
`login.com'に置かれるようにする。それによって、ユーザーがログインした
ときはいつでもこれが定義される。あるいは、このシンボルをすべてのユーザー
がgawk
を実行できるようにシステムワイドな`sylogin.com'に置く
こともできる。
Optionally, the help entry can be loaded into a VMS help library:
$ LIBRARY/HELP SYS$HELP:HELPLIB [.VMS]GAWK.HLP
(You may want to substitute a site-specific help library rather than the standard VMS library `HELPLIB'.) After loading the help text,
$ HELP GAWK
will provide information about both the gawk
implementation and the
awk
programming language.
論理名`AWK_LIBRARU'はawk
プログラムのデフォルトの
置き場所を指定することができる。
`-f'オプションで、デバイスやディレクトリパスの情報が
ない形でファイル名が指定されていた場合、gawk
は
最初にカレントディレクトリを検索し、そこでファイルが見つからなければ
次いで`AWK_LIBRARY'で指定されるディレクトリを検索する。
これらの両方の検索を行った後でもなおファイルが見つからなかった場合には
gawk
はファイル名に`.awk'という拡張子を付加して
ファイルの検索を再度試みる。`AWK_LIBRARY'が定義されていなければ、
ファイルの検索は再検索が行われることなく失敗する。
gawk
on VMS
コマンドラインの解釈とクォーティング(quoting)の規則は、
VMSのものと重大な違いがある。そのため、このマニュアルや
他のソースから持ってきたサンプルプログラムは、しばしば
ちょっとした変更が必要となる。この違いは小さなもの(minor)であり、
awk
プログラムは正しく実行されるだろう。
以下に幾つかのちょっとしたテストを挙げる。
$ gawk -- "BEGIN {print ""Hello, World!""}" $ gawk -"W" version ! could also be -"W version" or "-W version"
大文字の場合と、大小文字が混ざっている場合には クォートしなければならないことに注意。
VMSへのgawk
の移植には、オリジナルのシェルスタイルインターフェース
(詳しくはヘルプエントリを参照)に加えて、DCL
スタイルのインターフェ
ースが含まれている。二つのコマンドライン解析の副作用の一つは、パラメータ
(先のプログラムの様にクォートされた文字列のような)が一つだけしかなかった
ときコマンドは曖昧になる。これに対処するために、通常DCL
スタイルの
解析ではなくUNIXスタイルの解析を強制的に行わせる`--'オプションフラ
グが通常は必要となる。もしその他のダッシュタイプのオプション(もしくは処
理対象のファイルのような、複数のパラメータ)があったとすると、それは曖昧
ではなく、`--'も省略することができる。
`-f'オプションによって指定されたawk
のプログラムファイルを検
索するときのデフォルトの検索パスは、"SYS$DISK:[],AWK_LIBRARY:"
で
ある。論理名`AWKPATH'はこのデフォルトをオーバーライドできる。
`AWKPATH'の書式はカンマで区切られたディレクトリ指定のリストである。
これが定義されているとき、その値は単一の解釈(translation)であって複数の
RMS
検索リストではないように、クォートした方が良い。
gawk
on VMS POSIX
上にあるような手順を無視したとしても、`vms/gawk.hlp'は
ヘルプライブラリで使うことができる。
必要ならば`chmod +x'を使用して
configure
スクリプトを実行可能にしておくこと。
実行は次のようなコマンドで行う。
$ POSIX psx> CC=vms/posix-cc.sh configure psx> make CC=c89 make gawk
最初のコマンドは、configure
の期待するCコンパイラを作るためのスクリプ
トを使ってテンプレートから`config.h'と`Makefile'を生成する。
二番目のコマンドはCコンパイラを直接使ってgawk
のコンパイルと
リンクを行う。このとき、make
の出すCC
を再定義できない
とい警告は無視する。configure
は実行に際して非常に長い時間が
かかるけれども、少なくともそれが実行されているということを示す
フィードバックがある。
これはVAX/VMS V6.2, VMS POSIX V2.0 及び DEC C V5.2.でテストされた。
一度ビルドすれば、gawk
は他のシェルユーティリティと同じように動作
する。normal VMSへのgawk
の移植とは異なり、VMS POSIX環境では特別な
コマンドライン操作は必要ではない。
もしDOS担当保守者達によるバイナリ配布キットを入手したならば、gawk
と必要なサポートファイルは`gnu'というディレクトリの下に展開される。
実行ファイルは`gnu/bin'に、ライブラリは`gnu/lib/awk'に、マニュ
アルページは`gnu/man'に置かれる。これはユーザーのドライブの`/gnu'
ディレクトリに単純にインストールするようにデザインされているが、
AWKPATH
がセットされている場所であればどこにでもファイルを置くことがで
きる。インストールするディレクトリに関係なく、(`gnu/bin'にある)
`igawk.cmd'や`igawk.bat'の最初の一行を編集する必要があるかもしれ
ない。
バイナリ配布キットは内容を説明する別々のファイルを含んでいるだろう。特に、
二つ以上のgawk
の実行ファイルが入っているかもしれない。OS/2のバイ
ナリ配布キットは異なったアレンジが加えられているかもしれないが、インスト
ールは同様である。
OS/2用、MS-DOS用のgawk
は
セクション AWKPATH
環境変数を参照.
で説明されているようにプログラムを検索する。
しかしながら、AWKPATH
変数中の区切りには
(コロンではなく)セミコロンが使用される。
もしAWKPATH
がセットされていないか、内容が空であれば
デフォルトの検索パス".;c:/lib/awk;c:/gnu/lib/awk"
が
使用される。
(MS-DOSのcommand.com
やOS/2のcmd.exe
に対立するものとしての)
sh
に似たシェルがawk
プログラミングには便利だろう。Ian
StewartsonはMS-DOS、OS/2のために素晴らしいシェルを作成した。また、OS/2のた
めにksh
クローンを作成し、GNU BashをOS/2で使えるようにした。
gawk
の配布キットにある`README_d/README.pc'というファイルにはこれ
らのシェルに関する情報がある。StewartonのシェルをDOSで使う人は、コマンド
ラインの取り扱いのドキュメントの記述を確かめたほうが良いだろう。特にこの
ようなシェルの元で使うgawk
の設定は変更する必要があるだろうし、
ignoretype
オプションは特に重要なものであるだろう。
gawk
はMS-DOSやOS/2用に、DJ Delorieや
(DJGPP、MS-DOSのみ)、Eberhard Mattesによる(EMX、MS-DOSおよびOS/2)
GNU開発ツールを使ってコンパイルすることができる。
Microsoft CはMS-DOSおよびOS/2用の16bitバージョンを作成するために
使用することができる。gawk
の配布キット中にある
`README_d/README.pc' というファイルにはコンパイル時のオプションに関する
重要な注意書がある。
gawk
をビルドするために、`pc'というディレクトリにある
ファイル(`ChangeLog'は除く)
をgawk
の他のソースがあるディレクトリにコピーする。
`Makefile'にはコメントがついたコンフィグレーションセクションが
あり、正しく動作させるために使用するmake
ユーティリティに応じて
編集する必要があるかもしれない。
`Makefile'にはさまざまなMS-DOS、OS/2バージョンをビルドするためのタ
ーゲットが多数ある。ターゲットのリストはmake
ユーティリティをター
ゲットを指定せずに起動すると出力される。例えば、DJGPPを使ってgawk
をビルドするには`make djgpp'と入力する。
make
を使って標準テストの実行とgawk
をインストールするには、
更に別のsh
、sed
、cp
といったUNIXライクツールが必要と
なる。テストを実行するために、`test/*.ok'というファイル群をDOSスタ
イルの行末に変換する必要があるかもしれない。テストのほとんどはStewartson
のシェルとcompanion ユーティリティや適切な GNUユーティリティを一緒に使っ
たときに正しく動作する。しかし、多少の`test/Makefile'の編集が必要
である。`pc/Makefile.tst'を、`README_d/README.pc'というファイ
ルを置き換える形でコピーするのをお勧めする。
gawk
のインストール
様々なAtariのモデルがあるが、どのモデルであってもgawk
のインストー
ルにほとんど差はない。コンパイルされた実行形式のgawk
はほとんどの
awk
プログラムでは大きなメモリーを必要とはしないし、モトローラのプ
ロセッサを搭載したすべてのモデルで実行できる(それが正確ではないとしても
STと呼ぶ)
gawk
を使うためには、テキスト形式にしろグラフィックス形式であるに
しろ、コマンドライン上のすべてのキャラクタを大文字にマッピングしたりしな
いシェルが必要となる。オプションフラグの大小文字を保存することは、非常に
重要である(セクション コマンドラインオプションを参照)。今日ではこれはデフォ
ルトであり、一部の非常に古いマシンでのみこの問題が生じることになるだろう。
もし、あなたのシステムがオプションフラグの大小文字を保存しないのであれば、
あなたの使っているツールをアップグレードする必要がある。入出力リダイレク
トのサポートは、他の環境からawk
プログラムを持ってくることを簡単に
するために必要である。パイプはあればいいが、必需というほどでもない。
gawk
on the Atari ST
sizeof(int)
と sizeof(void *)
とが異なる場合の
適切なgawk
ソースのコンパイルには、ANSI Cコンパイラが
必要となる。最初にgcc
が移植が行われた。
int
は4バイトの大きさがあるように実行したいかもしれないが、
他の様々な作業はきちんと動作する。
gawk
のソースのコンパイルをするときに、一部の大きなソースファイル
(特に`regex.c')では多くのメモリが必要になるかもしれない。もしこれら
のファイルをコンパイルしているときにメモリ不足になってしまったならば、こ
れらのファイルに対する最適化オプションのレベルを下げることを試みると良い
かもしれない。
its results with the sample versions and possibly make adjustments.
LinuxやMiNT、あるいは同様なオペレーティングシステム上で
妥当なシェル(Bashもそうだ)を実行している場合には、
configure
ユーティリティがうまく行くというチャンスがある。
そういった環境ではない場合には、サブディレクトリ`atari'にある
`config.h'と`Makefile.st'というサンプルバージョンを
編集し、メインソースディレクトリにコピーする。
configure
が何かを生成したとしても、それは
その結果とサンプルバージョンとの比較に使える程のものである。
一部のgawk
ソースコードは
`atarist'というプリプロセッサ定義に依存している。
これは基本的にはTOS環境でgcc
を使っていることを仮定している。
もしあなたの環境でこれが正しくなければ、これらのセクションを
適切なものに修正する。同様に、
セクション Running gawk
on the Atari STを参照.
にあるAWKPATH
とenvsep
に関する注意を参照すること。
リリースされているように、サンプルの`config.h'ではsystem
関数
がライブラリにはないとしている。これは真ではないし、`atari/system.c'
にはこの関数が提供されている。あなたの使用しているシェルとオペレーティ
ングシステムの特定の組み合わせによって、あなたはsystem
が使用可能
であるように、ファイルを変更したいと思うかもしれない。
gawk
on the Atari ST
実行形式のgawk
を置くべき場所は、通常は
使用しているシェルがそれを見つけることのできる
PATH
にあるディレクトリのいずれかである。
実行している間、gawk
は幾つかの一時ファイルを作成する。TOS用の
gcc
ライブラリを使用しているときには、gawk
はTEMP
か
@code {TMPDIR}という環境変数をこの順番で参照する。もしどちらかが見つかれ
ば、その環境変数の値が一時ファイルを作成するディレクトリとして仮定される。
このディレクトリは実際に存在していなければならない。またメモリを節約する
ことができるのならば、このディレクトリをRAMディスクに置くことは良い考えで
ある。TEMP
もTMPDIR
も見つからなければ、gawk
はカレント
ディレクトリに一時ファイルを作成する。
STバージョンのgawk
は、それに対するプログラムファイルを
セクション AWKPATH
環境変数を参照.
にある様に検索する。変数AWKPATH
のデフォルトの値は
`Makefile'中で定義されているDEPPATH
が採用される。
配布キットにあるST用の、gcc
/TOS の`Makefile'
では、DEPPATH
に".,c:\lib\awk,c:\gnu\lib\awk"
をセットしている。この検索パスはAWKPATH
に望みの値を
セットすることによって、陽に変更を行うことができる。
STでは、変数AWKPATH
の要素を区切るのにコロンを使えない
ことに注意すること。コロンは別の意味に予約されているからである。
その代わりに、個々のパスを区切るのにカンマを使用する。
リコンパイルするときに`atari/gawkmisc.atr'にあるenvsep
という変数の値を別の値で初期化することによって、この分割キャラクタを
変更することができる。
gawk
がプログラム中で入出力のリダイレクトを行うことを許しているに
もかかわらず、STがTOSの元で動作しているときには使用に際しては注意すべき
である。一部のファイルハンドルのプールを処理するOSルーチンの環境では特定
のイベントの記録を失ってしまう。これはコンピュータをクラッシュさせ、リブ
ートしなければならなくなる。しばしばウォームリブートするのに十分である。
幸いにも、これは頻繁に発生するものではなく、むしろ esoteric situation(難
解な状況?)で発生する。特に、awk
プログラムを呼び出しているシェルで
標準出力をファイルにリダイレクトしていて、そのawk
プログラム中で他
のprint
文がデフォルトの標準出力を使っていて一部のprint
文で
"/dev/stdout"
にリダイレクトしているような状況を避ける。
gawk
がST用のgcc
と(gccの)通常ライブラリを使ってコンパイルさ
れているとき、`/'と`\'の両方をパスの区切りとして使用できる。こ
れは便利であるが、この内`/'というキャラクタはあなたのファイル名から
取り除いた方が良く、これが関数system
を通じて呼び出された外部プロ
グラムに問題を生じさせる可能性があることに注意すること。gawk
が作
成したファイルが他のプログラムから使われる可能性があるときにはいつでも、
バックスラッシュのみを使用する。同様にawk
では、文字列中のバックス
ラッシュはそれがバックスラッシュという文字そのものとして扱われるためには
二つ並べなければならないことに注意すること(セクション エスケープシーケンスを参照)。
gawk
のインストール
gawk
をwuarchive.wustl.edu
の`pub/aminet/dev/gcc'という
ディレクトリから匿名(anonymous)FTPを通じて入手できる
Amigaシステム上のUNIXエミュレーション環境に
インストールすることができる。
これにはpdksh
に基づいたシェルが含まれている。
この環境の基本的なコンポーネントはUNIXエミュレーションライブラリ、
`ixemul.lib'である。
ftp.ninemoons.com
の`pub/ade/current'という
ディレクトリから入手できるunixエミュレーション環境を使っている
Amiga にgawk
をインストールすることができる。
これはpdksh
に基づいたシェルも含まれている。この環境の基本的な
構成要素は、`ixemul.lib'というunixエミュレーションのライブラリである。
より完璧なAmiga用の配布キットは 以下の住所から入手できる Geek Gadgets CD-ROMにある。
CRONUS
1840 E. Warner Road #105-265
Tempe, AZ 85284 USA
US Toll Free: (800) 804-0833
Phone: +1-602-491-0442
FAX: +1-602-491-0048
Email:info@ninemoons.com
WWW:http://www.ninemoons.com
Anonymousftp
site:ftp.ninemoons.com
一度配布キットを受け取れば、単純にconfigure
を実行することにより
gawk
のコンフィグレーションができる。
configure -v m68k-amigaos
この後makef
を実行すれば、すべて設定されているはずだ!
(もしこういった手順がうまく行かなければ、それをバグレポートにして
送って欲しい。セクション 問題やバグの報告を参照.)
There is nothing more dangerous than a bored archeologist. The Hitchhiker's Guide to the Galaxy
もしあなたがgawk
を使っていて問題にあったり、バグを見つけたなら、
それを開発者達にレポートして欲しい。私達はレポート全てに対応できる
とは約束できないが、できる限りの修正を行うだろう。
バグを報告する前に、本当にそれがバグであるかどうかを確かめて欲しい。ドキュメ ントを注意深く読みかえし、あなたがやろうとしたことができるかどうかを確認する。 もし、それで何かはっきりしないことがあれば、それもまた報告して欲しい。なぜな ら、それはドキュメントのバグであるからだ。
バグを報告したり、自分で修正しようとする前に、発見した問題を再現する最小限の
プログラムと入力データを作ろうとしてみて欲しい。そしてそのプログラムと入力デー
タ、あなたが使っているUnixシステムの種類と gawk
の実行結果を送って欲し
い。そしてあなたが動作するだろうと考えたことも。これは本当にドキュメンテーショ
ンの問題かどうかを決定するのに役立つ。
問題点が明確になったら、それは以下の二ヶ所のアドレスのいずれかに 送ることができる。
メイルにはあなたの使っているgawk
のバージョン番号も忘れないように
お願いする。バージョンは、`gawk -- version'とすれば得ることができる。
そして、そのメイルのカーボンコピーを Arnold Robbinsにも送って欲しい。
彼のメイルアドレスは`arnold@gnu.org'である。
重要! gawk
に関するバグリポートを
インターネットのニューズグループcomp.lang.awk
で
行わないように。gawk
の開発者達は時折このニューズグループを
見てはいるが、その投稿を私達が見るだろうという保証はない。
先程説明した手順が正式なバグレポートの手順である。
バグレポート以外に、提案もいつでも受け付ける。あなたがドキュメントのなかで不明瞭で あると考える疑問や、曖昧であると思う機能があれば、Arnold Robbinsに尋ねて欲 しい。彼はあなたの疑問を解決しようとするだろう。彼に対する電子メイルは、先 に挙げたインターネットのアドレスで出すことができる。
UNIX以外のシステムに移植されたgawk
でバグを発見した場合、移植を行なっ
た人物に電子メイルを送って欲しい。そのような人々を以下に挙げるし、そのリス
トは配布キットの中の `README'というファイルにもある。この
マニュアルの内容と`README'中の情報が矛盾していたりしたら、
README
の方を信用するように。
UNIX以外のシステムに移植されたgawk
を保守しているのは以下の人達である。
もしあなたが見つけたバグがUNIX環境下のgawkでも発生するものならば、 バグレポートのコピーを通常のGNUのバグリストと、Arnold Robbinsにも 送って欲しい。そのためのアドレスは先に説明した通りである。
awk
処理系
It's kind of fun to put comments like this in your awk code.
// Do C++ comments work? answer: yes! of course
Michael Brennan
自由に入手することのできるawk
処理系が二つある。
このセクションでは簡単にそれらを入手できる場所を説明する。
awk
awk
を自由に配布できるよう
にしている。これは、匿名ftpを使ってnetlib.bell-labs.com
というホスト
にアクセスし、`/netlib/research'というディレクトリに移動すれば入手
する事ができる。このとき、"バイナリモード"か"イメージモード"を使用し、
`awk.bundle.gzip'を検索する。
これはGNU gzip
ユーティリティで圧縮されたシェルアーカイブである。
GNU gunzip
ユーティリティを使用することで
伸長することができる。
このバージョンは、World Wide WebのBrian Kernighanのホームページ
{http://cm.bell-labs.com/who/bwk
から入手することもできる。
このバージョンはANSI Cのコンパイラを必要とする。GCC(GNU C コンパイラ)は
問題なく使える。
mawk
amwk
と呼ばれるawk
を独自に作成した。
これはgawk
と同じように、GPL
(セクション GNU GENERAL PUBLIC LICENSEを参照)に従い入手することができる。
ftp.whidbey.net
というホストから匿名ftpによって、mawkが
入手可能である。接続した後、ディレクトリを`/pub/brennan'に変更し、
"binary"モードか"image"モードにしてから、`mawk1.3.3.tar.gz'
(もしくはそれ以後の最新バージョン)というファイルを指定する。
このファイルを展開するにはgunzip
を使用する。
このインストールはgawk
をインストールするときと同様である。
(セクション UNIX上での gawk
のコンパイルとインストールを参照).