これらのコマンドはPOSIXに準拠したシステムで使用可能であ る。他のオペレーティングシステムを使っているのなら、あなたはさらに 入出力のリダイレクトやパイプなどの概念に親しむ必要がある。
訳注: 原書の場合
これらのシステムでは、しばしばgawkがそのシス
テムでのawkとして用いられている。
`#!'構文はLinuxやバークレイUNIX、System V Release4と、一部のRelease 3から派生したUNIXシステムで使用できる
`#!'で始まる行はインタープリタのフルパス名とプログラムを
実行するための引数リストのリストがある。
最初の引数は実行するためのものであり、その他はオプションのインタープリタ
に渡す初期コマンドライン引数である。オペレーティングシステムは、インター
プリタを与えられたawkプログラムのフルパス名から起動し、引数リスト
の残りをawkに対するオプション指定か、データファイル、もしくはその
両方にする。
POSIX awkでは、改行はフィール
ドを分ける空白とはみなされない。
sedユーティリティは"ストリームエディタ"である。その動作は、やは
りPOSIXの標準で定義されている。
awk内部ではすべての数値は倍精度の浮動小数点数であ
る。もしこの言葉の意味が判らなくても気にすることはない。
POSIX の awkでは、改行は空白とみなされない。
一部の初期のUNIX上のawkでは、処理すべきデータファイルがあったとしても
FILENAMEを"-"に初期化していた。この振る舞いは誤ったものであり、
こうなることを期待してプログラムを作成するべきではない。
コンピュータが作り出す乱数は本当の乱数ではない。 これらは"擬似乱数"として知られている。これは作られた数値群は ランダムのように見えるけれども、何度でも同じ順序の乱数系列を作り出すことが できるのだ。
この結果は故意ではない。
April, 1999現在、最終的な承認状態にあり、 1997年中に出版されることが期待されている。
標準出力がターミナルデバイスに接続されていれば、そのプログラムは 対話的なものである。
閏秒のために60になる可能性があるので、60までとなっている。
これは ANSI の標準CではCバージョンのstrftimeのその
ような場合の動作が定義されていないからで、gawkが使うであろうそのシ
ステムでのstrftimeそれならば同様の結果となる。典型的なのは変換指定
文字が戻り値の文字列にないということだろう。
もしこの事がわからなくても気にすることはない。 これらはプログラムの"国際化"(internationalize)を容易にするためのも のである。
あなたの使っているgawkは`/usr/local/share/awk'
以外のディレクトリを使っているかもしれない。これはgawkがどのよう
にビルドされたり、インストールされたかに依存していて、実際のディレクト
リはgawkがコンフィギュレーションされたときに生成された
`$(datadir)'の値になる。しかし、これを気にする必要はない。
一部のawk処理系では、関数本体でnextを実行することを
許していない。もしそのような処理系を使っているのなら、
それに対処する必要がある。
ASCIIは多くの国で128から255までの値を 各国固有のキャラクタの定義に使っている。もし使用しているシステムが これらの拡張を使っているのならば、単純にループを0から255にすれば良い。
これはPOSIXシステムの 開始時間であり、他のシステムでは 異なったものかもしれない。
セクション Noting Data File Boundariesを参照.
にあるコードを確かめるように。なぜwcでは
endfileの中でFNRの値を使わずに、
linesという変数を使わねばらないのだろうか?
古い、非POSIXシステムでは、tr
はしばしばこのリストを囲むブラケットを必要とせず、したがってクォートの必
要もなかった。これは仕様である。
このプログラムは、gawkに文字列中の個々のキャラクタを配
列の要素に分割するという能力が追加される前に書かれた。この能力はプログラ
ムをどのように単純化できるだろうか?
"Real world"とは、"実際 に何かをするために使われるプログラム"と定義される。
幾つかの、非常に古い
awkでは、ファイルが存在するけれどもそれが空であるときに
`getline junk < t' という検査が無限ループに
落ち込む可能性がある。Caveat Emptor(買手注意?)。
`/usr/local/share/awk'以外のパスが使われる
場合もある。これはgawkがどのようにビルドされ、インストールされたかに
よる。
POSIX awkでは、改行はフィールドを分割しない