これらのコマンドは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
では、改行はフィールドを分割しない