diff --git a/ja/man/man1/awk.1 b/ja/man/man1/awk.1 index e441aa54d7..8f0d0ed04a 100644 --- a/ja/man/man1/awk.1 +++ b/ja/man/man1/awk.1 @@ -1,2534 +1,2534 @@ .\" jpman %Id: awk.1,v 1.3 1997/04/17 13:23:21 horikawa Stab % .\" WORD: interval exptession インターバル表現 .ds PX \s-1POSIX\s+1 .ds UX \s-1UNIX\s+1 .ds AN \s-1ANSI\s+1 .TH GAWK 1 "Dec 19 1996" "Free Software Foundation" "Utility Commands" .SH 名称 gawk \- パターン検索・処理言語 .SH 書式 .B awk [ POSIX or GNU style options ] .B \-f .I program-file [ .B \-\^\- ] file .\^.\^. .br .B gawk [ POSIX or GNU style options ] [ .B \-\^\- ] .I program-text file .\^.\^. .SH 解説 .I gawk は GNU プロジェクトが実装した プログラミング言語 AWK の処理系です。 本処理系は \*(PX 1003.2 コマンド言語とユーティリティ規約に定められた 言語の定義に適合しています。 本バージョンはまた、Aho, Kernighan, Weinberger の著書『 .I The AWK Programming Language 』の記述にもとづいており、 System V Release 4 \*(UX の .I awk の付加機能も含んでいます。 .I gawk はまた、Bell Labs の新機能および GNU 独自の拡張も提供します。 .PP コマンドラインは、 .I gawk へのオプション、(もし .B \-f または .B \-\^\-file オプションにより指定されていなければ)AWK のプログラムテキスト、そして 残りの引数列からなります。 この残りの引数列は、定義済み AWK 変数 .BR ARGC , .B ARGV を用いることで参照できます。 .SH オプションフォーマット .PP .I gawk へのオプションは、伝統的な \*(PX 形式の 1 文字オプションと、GNU 形式の ロングオプションがあります。 \*(PX 形式のオプションは単一の ``\-'' で始まり、一方 GNU 形式のもの は ``\-\^\-'' で始まります。ロングオプションは GNU の独自仕様と \*(PX の必須仕様の両方について用意されています。 .PP \*(PX 標準に従い、 .I gawk 独自仕様のオプションは .B \-W オプションへの引数で与えます。 複数の .B \-W オプションを指定することもできます。 後述の ように、各 .B \-W オプションには、それに対応するロングオプション が存在します。ロングオプションへの引数は、空白を入れずに .B = でつないで指定するか、その次のコマンドライン引数として渡すことができます。 ロングオプションは、短縮形が一意である限り、短縮することができます。 .SH オプショオン .I gawk は以下のオプションを受け付けます。 .TP .PD 0 .BI \-F " fs" .TP .PD .BI \-\^\-field-separator " fs" 入力フィールドセパレータ(変数 .B FS の値)を .I fs とします。 .TP .PD 0 \fB\-v\fI var\fB\^=\^\fIval\fR .TP .PD \fB\-\^\-assign \fIvar\fB\^=\^\fIval\fR プログラムを実行する前に、変数 .I var に値 .I val を設定します。このようにして設定 した変数は、 AWK プログラムの .B BEGIN ブロック内でも参照できます。 .TP .PD 0 .BI \-f " program-file" .TP .PD .BI \-\^\-file " program-file" .B awk への第 1 引数を用いるかわりに、AWK プログラムをファイル .I program-file から読み込みます。 .B \-f (または .B \-\^\-file ) オプションは複数回使 用することができます。 .TP .PD 0 .BI \-mf " NNN" .TP .PD .BI \-mr " NNN" さまざまなメモリの制限値を .I NNN に設定します。フラグ .B f は最大フィールド数、フラグ .B r は最大レコードサイズを設定します。この 2 つのフラグと .B \-m オプションは、Bell Labs バージョンの \*(UX .I awk に由来しています。しかし、 .I gawk にはこのような制限はありませんので、 .I gawk では本オプションは無視されます。 .TP .PD 0 .B "-W traditional" .TP .PD 0 .B "\-W compat" .TP .PD 0 .B \-\^\-traditional .TP .PD .B \-\^\-compat .I 互換 モードで動作します。互換モードでは、 .I gawk は \*(UX .I awk と等価な動作を行い、GNU 独自拡張は解釈できません。 このオプションの他の形式よりも、 .B \-\^\-traditional を使用することが好まれます。 詳しくは後述の .B "GNU 拡張" を参照してください。 .TP .PD 0 .B "\-W copyleft" .TP .PD 0 .B "\-W copyright" .TP .PD 0 .B \-\^\-copyleft .TP .PD .B \-\^\-copyright GNU の著作権表示の短いバージョンを標準出力へ書き出し、 成功状態で終了します。 .TP .PD 0 .B "\-W help" .TP .PD 0 .B "\-W usage" .TP .PD 0 .B \-\^\-help .TP .PD .B \-\^\-usage 短めのオプション一覧を標準出力へ書き出します。 (GNU コーディング規約に 従い、本オプションを指定すると .I awk はただちに終了し、成功を意味する終了ステータスを返します。) .TP .PD .B "\-W lint" .TP .PD 0 .B \-\^\-lint 他の AWK での処理が疑わしい、あるいは他の AWK との互換性がない構造が ある場合に警告を行います。 .TP .PD 0 .B "\-W lint\-old" .TP .PD .B \-\^\-lint\-old オリジナルの Unix .I awk へ移植できない構造に関して警告を行います。 .ig .\" This option is left undocumented, on purpose. .TP .PD 0 .B "\-W nostalgia" .TP .PD .B \-\^\-nostalgia 長い間 .I awk を使ってきたユーザのために郷愁の瞬間を提供します。 .. .TP .PD 0 .B "\-W posix" .TP .PD .B \-\^\-posix .I 互換 モードをオンにし、更に以下の制約が課せられます。 .RS .TP \w'\(bu'u+1n \(bu .B \ex エスケープシーケンスを解釈しません。 .TP \(bu .B FS が単一の空白に設定された場合、空白とタブのみがフィールドを区切り、 改行はフィールドを区切りません。 .TP \(bu キーワード .B function に対応する別名 .B func を解釈しません。 .TP \(bu 演算子 .B ^ や .B ^= のかわりに .B ** や .B **= を用いることができません。 .TP \(bu .B fflush() 関数は利用できません。 .RE .TP .PD 0 .B "\-W re\-interval" .TP .PD .B \-\^\-re\-interval 正規表現のマッチングで .I "インターバル表現 (interval expressions)" を有効にします (後述の .BR "正規表現" を参照してください)。 インターバル表現は伝統的な AWK 言語では利用できませんでした。 .I awk と .I egrep が一貫性を持つように、POSIX 標準がこれらを追加しました。 しかし、これらを使用すると古い AWK プログラムを動かなくしてしまうでしょうから、 このオプションによって要求されたときと、 .B \-\^\-posix が指定されたときに、 .I gawk はこれらの機能を提供します。 .TP .PD 0 .BI "\-W source " program-text .TP .PD .BI \-\^\-source " program-text" .I program-text を AWK プログラムとして用います。本オプションにより、ライブラリ化された関数( .B \-f または .B \-\^\-file オプションを用いて読み込む)とコマンドラインから入力されたプログラムを 簡単に合成することができます。 これは、主にシェルスクリプトで用いられる中規模から大規模な AWK プログラム のために用意されました。 .TP .PD 0 .B "\-W version" .TP .PD .B \-\^\-version 実行された .I gawk プログラムのバージョン情報を標準出力へ書き出します。これは主に、 あなたが使用している .I gawk プログラムが Free Software Foundation が配布してい るプログラムのうち、最新のものであるかどうかを知る場合に便利です。 またバグレポートのときにも有用です。 (本オプションを指定すると、GNU コーディング規約に従い、 .I awk はただちに終了し、成功を意味する終了ステータスを返します。) .TP .B \-\^\- オプションの終了を意味します。AWK プログラムに ``\-'' から始まるオプションではない 引数を与える場合に便利です。 これは、主に他の \*(PX プログラムの多くが引数に対して行う解釈と 一貫性を保つためにあります。 .PP 互換モードでは、他のオプションは不正であるとされるか、無視されます。 通常の実行において、プログラムテキストがコマンドラインに指定されていれば、 不明なオプションは、AWK プログラムに .B ARGV 配列を通して渡されます。これ は、AWK プログラムを ``#!'' 機構を用いて実行する場合に特に便利です。 .SH AWK プログラムの実行 .PP AWK プログラムは、パターンとアクションの組の列と、(もし必要なら)関数定義か らなります。 .RS .PP \fIpattern\fB { \fIaction statements\fB }\fR .br \fBfunction \fIname\fB(\fIparameter list\fB) { \fIstatements\fB }\fR .RE .PP .I gawk はまず、 .I program-file (複数可)が指定されていればそれから、 .B \-\^\-source の引数から、あるいは、最初のオプションではない引数から プログラムを読み込みます。 .B \-f と .B \-\^\-source オプションは、コマンドラインで複数回指定できます。 .I gawk は、すべての .I program-file とコマンドラインで指定したプログラムを結 合して使用します。新しく作った AWK プログラムひとつひとつに AWK 関数のライブラリを埋め込む必要が無いので、この機能はライブラリの構築に 便利です。 また、ライブラリ関数とコマンドラインで指定したプログラムとを混合して使 うことも可能にしています。 .PP 環境変数 .B AWKPATH により、 .B \-f オプションで指定されたファイルを検索するパスを指定できます。 .B AWKPATH が設定されていない場合のデフォルトパスは \fB".:/usr/local/share/awk"\fR です。 (実際のディレクトリは .I gawk がどのように構築/インストールされたかに依存して、さまざまなものとなります。) .B \-f オプションで指定したファイル名が ``/'' を含んでいる場合は、 パス検索は行われません。 .PP .I gawk は、 AWK プログラムを次の順序で実行します。 まず、 .B \-v オプションで指定された変数への代入をすべて行います。 次に、プログラムを内部形式にコンパイルします。 そして、(もし存在すれば) .B BEGIN ブロック(複数存在可)を実行します。 配列 .B ARGV で指定されたファイルを順に読み、処理を行います(コマンドラインでファイル名が 指定されていなければ、標準入力に対して処理を行います)。 .PP コマンドラインで指定されたファイル名が .IB var = val という形式ならば、それ は変数への代入であると解釈されます。変数 .I var は値 .I val に設定されます (これは、すべての .B BEGIN ブロックを実行したあとに行われます)。コマンドライン での変数の代入は、AWK が入力をフィールドやレコードに分割するためのセパレータ を実行時に変更するのに便利です。また、1 つのデータファイルに 対し数回処理を行う必要がある場合、状態をコントロールするのにも便利です。 .PP 配列 .B ARGV の要素に空(\fB""\fR)がある場合、 .I gawk はその要素を無視します。 .PP .I gawk は、入力された各レコードに対してマッチする .I パターン が AWK プログラム内にあるかどうかを 検索します。そのレコードにマッチしたパターンすべてについて、それぞれ対応する .I アクション が実行されます。 パターンは、プログラムテキストに出現した順序で検索されます。 .PP 入力が尽きると、 .I gawk は(もしあれば) .B END ブロック(複数存在可)を実行します。 .SH 変数、レコード、フィールド AWK における変数は動的、すなわち、最初に使用されたときに生成されます。 変数の値は、浮動小数点数か、文字列か、あるいは両方です。変数の用い られ方により変化します。AWK ではまた、1次元配列を利用することができます。 多次元配列 も、擬似的にではありますが、利用可能です。プログラム実行開始時に、 いくつかの定義済み変数が設定されます。 これらを必要に応じて説明し、以下でまとめます。 .SS レコード 通常、レコードは改行文字により区切られます。 レコードの区切りは、組み込み変数 .B RS へ値を代入することにより、制御できます。 .B RS が単一文字の場合、その文字がレコードを区切ります。 そうでない場合は、 .B RS は正規表現となります。 入力中のテキストで、この正規表現にマッチするものがレコードを区切ります。 しかし互換モードでは、 文字列値の最初の文字だけが、レコードセパレータに使用されます。 .B RS が空文字列に設定されているときには、レコードは空行で区切られます。 .B RS が空文字列に設定されたときには、 .B FS の値にかかわらず、改行文字は常にフィールドセパレータとなります。 .SS フィールド .PP 入力レコードを読み込むごとに、 .I gawk はそのレコードを .I フィールド に分割しま す。分割する際には、変数 .B FS の値がフィールドセパレータとして参照されます。 .B FS の値が1文字なら、その 文字を境にフィールドが分割されます。 .B FS が空文字列の場合、個々の文字がフィールドセパレータとなります。 いずれでもない場合、 .B FS は完全な正規表現である と解釈されます。特殊な場合として .B FS が単一の空白のときには、フィールドは 連続した空白・タブ・改行により分割されます。 (後述の .BR \-\-posix の議論を参照してください)。 変数 .B IGNORECASE (下記参照)の 値は、 .B FS が正規表現の場合フィールド分割にも影響を与えることと、 .B RS が正規表現の場合レコード分割にも影響を与えることに注意してください。 .PP 変数 .B FIELDWIDTHS の値が空白で区切られた数字の列である場合、各フィールドは 固定長であると解釈され、 .I gawk は指定された幅ごとにフィールドの 分割を行います。この場合、 .B FS の値は無視されます。 .B FS に新たに値を設定 することにより、この .B FIELDWIDTHS の効果を打ち消し、標準の動作に戻すことができます。 .PP 入力レコード中の各フィールドの値は、左から .BR $1 , .B $2 等という名前で参照できます。 .B $0 は レコード全体です。フィールドに値を代入することもできます。フィールドは定数だ けでなく、変数によって参照することもできます。以下の例では、入力レコードの 5 番目のフィールドの値を出力します。 .RS .PP .ft B n = 5 .br print $n .ft R .RE .PP 変数 NF は、自動的に入力レコードのフィールドの数に設定されます。 .PP 存在しないフィールド(すなわち、 .B $NF より右のフィールド)を参照した結果は 空文字列になります。しかしながら、存在しないフィールドへの代入(たとえ ば、 .BR $(NF+2) = 5 )は .B NF の値を増加させ、間のフィールドには空文字が設定されます。 さらに .B $0 の値は、フィールドの値を変数 .B OFS の値でフィールドを区切ったものとして再計算されます。 負のフィールド番号への参照は致命的エラーとなります。 .B NF を減少させると、新しい値を越えるフィールドの値は失われます。 .B $0 の値は、フィールドの値を変数 .B OFS の値でフィールドを区切ったものとして再計算されます。 .SS 組み込み変数 .PP .I gawk の組み込み変数は以下のとおりです。 .PP .TP \w'\fBFIELDWIDTHS\fR'u+1n .B ARGC コマンドライン引数の個数( .I gawk へのオプションと、プログラム指定は含みま せん)。 .TP .B ARGIND 現在処理中のファイル名が格納されている配列 .B ARGV のインデックス。 .TP .B ARGV コマンドライン引数の配列。配列は、 0 から .B ARGC \- 1 までのインデックスを 持ちます。 .B ARGV の内容を変更することで、入力に用いるファイル名を変 更することができます。 .TP .B CONVFMT 数値の変換フォーマット。デフォルト値は \fB"%.6g"\fR です。 .TP .B ENVIRON 現在の環境変数の値からなる配列。配列は、環境変数名によりインデックスされ 、各要素の値はその環境変数の値です(例えば \fBENVIRON["HOME"]\fP は .B /home/arnold となるでしょう)。本配列に 代入を行っても、 .I gawk からリダイレクトや .B system() 関数により実行される プログラムの環境には影響を与えません(これは、将来の .I gawk では変更される可能性があります)。 .\" but don't hold your breath... .TP .B ERRNO .B getline のリダイレクト、 .B getline による読み込み、 .B close() 関数の実行時のいずれかにシステムエラーが発生した場合、変数 .B ERRNO にはエラーの内容を示した文字列が設定されます。 .TP .B FIELDWIDTHS 空白で区切られたフィールド長のリスト。もしこの値が設定されていれば、 .I gawk は .B FS の値を用いてフィールド分割するかわりに、固定長のフィールド分割を行 います。固定長のフィールド分割機能はまだ実験的なもので、 .I gawk が改良されるに従って意味が変化する可能性があります。 .TP .B FILENAME 現在の入力ファイル名。もし、コマンドラインで入力ファイルが指定されてい なければ、 .B FILENAME の値は ``\-'' です。しかしながら、 .B BEGIN ブロック内では .B FILENAME は未定義です。 .TP .B FNR 現在の入力ファイルにおける入力レコード番号。 .TP .B FS 入力フィールドセパレータ。デフォルトでは単一の空白です。 上述の .B フィールド を参照してください。 .TP .B IGNORECASE すべての正規表現と文字列操作において大文字小文字の区別を制御します。もし、 .B IGNORECASE が 0 でない値に設定されていれば、文字列比較、ルールのパターンマッチ、 .B FS によるフィールド分割、 .B RS によるレコード分割、 .B ~ と .B !~ による正規表現マッチ、定義済み関数 .BR gensub() , .BR gsub() , .BR index() , .BR match() , .BR split() , .B sub() において大文字と小文字の違いは無視されます。このため、 .B IGNORECASE が 0 以外の値なら、 .B /aB/ は \fB"ab"\fP, \fB"aB"\fP, \fB"Ab"\fP, \fB"AB"\fP のいずれにもマッチすることになります。 他のAWK 変数と同様に .B IGNORECASE の初期値は 0 なので、通常は 正規表現と文字列操作において大文字と小文字は区別されます。 Unix では、大文字小文字を無視する場合、 ISO 8859-1 Latin-1 文字集合全てを使用できます。 .B 注: 3.0 以前の .I gawk では .B IGNORECASE は正規表現操作のみに影響しました。現在は文字列比較にも影響します。 .TP .B NF 現在の入力レコードのフィールド数。 .TP .B NR 現在までに読み込んだ入力レコード数の合計。 .TP .B OFMT 数字の出力フォーマット。デフォルト値は \fB"%.6g"\fR です。 .TP .B OFS 出力フィールドセパレータ。デフォルトは空白です。 .TP .B ORS 出力レコードセパレータ。デフォルトは改行です。 .TP .B RS 入力レコードセパレータ。デフォルトは改行です。 .TP .B RT レコードターミネータ。 .I gawk は、 .B RS で指定される文字または正規表現にマッチする入力テキストを、 .B RT に設定します。 .TP .B RSTART .B match() によりマッチした最初の文字の位置。0 はマッチしなかったことを示します。 .TP .B RLENGTH .B match() によりマッチした文字列の長さ。\-1 はマッチしなかったことを示します。 .TP .B SUBSEP 多次元配列を実現する際に用いられる、配列のインデックスを結合する文字。 デフォルト値は \fB"\e034"\fR です。 .SS 配列 .PP 配列は、ブラケット .RB ( [ と .BR ] ) の間の式によってインデックスを指定します。もし式が式 のリスト(式, 式, ...) なら、式の値を変数 .B SUBSEP の値を区切りとして 結合した文字列をインデックスとして用います。これにより、多次元配列を シミュレートしています。例えば、 .PP .RS .ft B i = "A";\^ j = "B";\^ k = "C" .br x[i, j, k] = "hello, world\en" .ft R .RE .PP は、文字列 \fB"hello, world\en"\fR を、文字列 \fB"A\e034B\e034C"\fR で インデックスした配列 x の要素に代入しています。 AWK の配列はすべて、文字列によりインデックスを行う連想配列です。 .PP 特殊な演算子 .B in を .B if または .B while ステートメントで用いることによって、あるインデックス値に おける配列の値が定義されているかを調べることができます。 .PP .RS .ft B .nf if (val in array) print array[val] .fi .ft .RE .PP もし、配列が多次元インデックスを持つなら、 .B "(i, j) in array" を用います。 .PP .B in はまた、 .B for ループ中で、配列のすべてのインデックス値について繰り返すために 用いることができます。 .PP 配列の要素は、 .B delete ステートメントを用いて削除することができます。 .B delete ステートメントはまた、 添字を指定せずに配列名のみを指定することにより、 配列全体を削除するためにも使えます。 .SS 変数の型と変換 .PP 変数とフィールドは、(浮動小数点数の)数値または文字列、あるいは両方として 扱われます。 変数の値がどのように解釈されるかは、変数の使われ方によって変化します。 数式中で用いられれば変数は数値として解釈され、文字列として用いられれ ば文字列として解釈されます。 .PP 変数の値を強制的に数値であると解釈させたい場合は、変数に 0 を加えます。 文字列と解釈させたい場合は空文字列を結合します。 .PP 文字列を数値に変換する必要がある場合、変換は .IR atof (3) によって行われます。 数値を文字列に変換する場合は、変数 .B CONVFMT の値をフォーマット文字列として用いて、 .IR sprintf (3) により行われます。AWK ではすべての数値は浮動小数点数ですが、整数値は常に整数 として変換が行われます。 よって、以下の場合、 .PP .RS .ft B .nf CONVFMT = "%2.2f" a = 12 b = a "" .fi .ft R .RE .PP 変数 .B b は文字列値 \fB"12"\fR となり、\fB"12.00"\fR とはなりません。 .PP .I gawk は、以下のようにして比較を行います: 2 つの変数が数値なら数値として比 較します。もし片方が数値で片方が`数値'文字列なら、数値として比較されます。 片方が数値でない文字列なら、数値のほうが文字列に変換され、文字列として 比較されます。両方とも文字列なら、文字列として比較されます。\*(PX 標準に従う なら、両方とも数値文字列の場合は数値として比較しますが、これは明ら かに間違いです。 .I gawk はそのような動作をしません。 .PP \fB"57"\fP のような文字列定数は数値文字列では .I なく 、文字列定数です。「数値文字列」の概念は、フィールド、 .B getline の入力、 .B FILENAME 、 .B ARGV の要素、 .B ENVIRON の要素、数値文字列から .B split() によって作成された配列の要素に対してのみ適用されます。 基本的な考え方では、 .I ユーザ入力 、それも数値に見えるユーザ入力のみが数値として扱われます。 .PP 初期化されていない変数は、数値としては 0 を、文字列としては "" (空文字列)を 持ちます。 .SH パターンとアクション awk は行指向の言語です。まずパターン、次にアクションが続きます。 アクションは .B { と .B } で囲みます。パターンまたはアクションは省略することもできます。 もちろん、両方とも 省略してしまっては意味がありません。 パターンがない場合、アクションはすべての入力レコードに 対して適用されます。省略されたアクションは以下と等価です。 .RS .PP .B "{ print }" .RE .PP これはレコード全体を出力します。 .PP コメントは文字 ``#'' で始まり、行末まで続きます。空行は、複数ステートメントの 間をあけるのに使うことができます。 通常、ステートメントは改行で終わります。ただし、 次の記号で行が終わる場合にはこの限りではありません: ``,'', .BR { , .BR ? , .BR : , .BR && , .B || 。 .B do または .B else で終わる行は、ステートメントが自動的に以降 の行へ継続されます。また、改行の直前に ``\e'' を置くことで、 行を継続することができます。この場合、その改行は無視されます。 .PP ``;'' で区切ることにより、1行に複数のステートメントを記述することができます。 (通常のように) パターン-アクション対中のアクション部におけるステートメントだけではなく、 パターン-アクション対ステートメント自身も、 ``;'' で区切って複数置くことができます。 .SS パターン AWK のパターンは、以下のうちのいずれかです。 .PP .RS .nf .B BEGIN .B END .BI / "regular expression" / .I "relational expression" .IB pattern " && " pattern .IB pattern " || " pattern .IB pattern " ? " pattern " : " pattern .BI ( pattern ) .BI ! " pattern" .IB pattern1 ", " pattern2 .fi .RE .PP .B BEGIN と .B END は特殊なパターンであり、入力と比較されることはありません。すべての .B BEGIN パターンに対応したアクション部は結合され、 そのようなすべてのアクション部が単一の .B BEGIN ブロック中にあるかのように扱われます。 結合されたアクションは、 すべての入力ファイルの読み込みに先立って実行されます。同様にすべての .B END ブロックは結合され、すべての入力ファイルの処理後(あるいは、exit ステートメント が実行されたとき)に実行されます。 .B BEGIN と .B END はパターン式内で他のパターンと混ぜて使うことはできません。また、 .B BEGIN と .B END パターンはアクション部を省略することができません。 .PP .BI / "regular expression" / パターンでは、正規表現(regular expression) にマッチした入力レコードに対してアクション が実行されます。正規表現は .IR egrep (1) と同じものが使えます。あとに要約を示します。 .PP .I 関係式(relational expression) では、後述のアクションについての節で示す演算子を用いることが できます。 これらは概して、特定のフィールドが正規表現にマッチするかどうかを 調べるために用いられます。 .PP 演算子 .BR && , .BR || , .B ! は、それぞれ C 言語での論理AND、論理OR、論理NOT と等価です。 C 言語と同様に、評価値が確定した時点で以降の評価を打ち切ります。 これらは複数のパターン式を結合するために使用されます。 他のプログラミング言語と同様、括弧によって評価順序を変更することができます。 .PP .B ?\^: 演算子は C 言語のものと同様です。もし、最初のパターンが真なら、 テストのために 2 番目のパターンが用いられ、そうでなければ 3 番目のパターンが 用いられます。2 番目と 3 番目のパターンのどちらかだけが評価されます。 .PP .IB pattern1 ", " pattern2 形式は .I 範囲パターン と呼ばれます。範囲パターンは、 .I pattern1 にマッチするレコードから、 .I pattern2 にマッチするレコードまでのすべてにマッチします。 この形式は、他のパターン式と混合して用いることはできません。 .SS 正規表現 awk の正規表現は .I egrep のものと同様に、拡張された正規表現です。 以下の構成要素から成り立っています。 .TP \w'\fB[^\fIabc...\fB]\fR'u+2n .I c メタ文字ではない .I c にマッチする。 .TP .I \ec リテラル文字 .I c にマッチする。 .TP .B . 改行を .I 含む 任意の 1 文字にマッチする。 .TP .B ^ 文字列の先頭にマッチする。 .TP .B $ 文字列の終端にマッチする。 .TP .BI [ abc... ] 文字リストであり、 .I abc... のいずれか 1 文字にマッチする。 .TP .BI [^ abc... ] 文字リストの逆であり、 .I abc... 以外の 1 文字にマッチする。 .TP .IB r1 | r2 選言: .I r1 または .I r2 にマッチする。 .TP .I r1r2 結合: .I r1 の直後に .I r2 が続くものにマッチする。 .TP .IB r + .I r の 1 回以上の繰り返しにマッチする。 .TP .IB r * .I r の 0 回以上の繰り返しにマッチする。 .TP .IB r ? .I r の 0 回または 1 回の繰り返しにマッチする。 .TP .BI ( r ) グループ化: .I r にマッチする。 .TP .PD 0 .IB r { n } .TP .PD 0 .IB r { n ,} .TP .PD .IB r { n , m } ブレース中に 1 つか 2 つの数値を記述することにより、 .I "インターバル表現" を表します。ブレース中に数値が 1 つある場合、直前の正規表現 .I r が .I n 回繰り返されます。2 つの数値がコンマで区切られている場合、 .I r は .I n 回から .I m 回繰り返されます。1 つの数値に続いてコンマがある場合、 .I r は少なくとも .I n 回繰り返されます。 .sp .5 インターバル表現は .B \-\^\-posix または .B \-\^\-re\-interval がコマンドラインにて指定されているときのみ利用可能です。 .TP .B \ey 語の先頭または末尾の空文字列にマッチします。 .TP .B \eB 語の中の空文字列にマッチします。 .TP .B \e< 語の先頭の空文字列にマッチします。 .TP .B \e> 語の末尾の空文字列にマッチします。 .TP .B \ew 語を構成する文字 (レター、数値、アンダスコア) にマッチします。 .TP .B \eW 語を構成する文字以外の文字にマッチします。 .TP .B \e` バッファ (文字列) の先頭の空文字列にマッチします。 .TP .B \e' バッファの末尾の空文字列にマッチします。 .PP 文字列定数中で用いることができるエスケープシーケンス(後述参照)は、 正規表現中でも使用することができます。 .PP .I 文字クラス は POSIX 標準で導入された新機能です。 文字クラスは特定の属性を持つ文字列リストの特殊表現ですが、 実際の文字集合自身は国や文字集合によって様々なものとなります。 例えば、アルファベット文字はアメリカ合州国とフランスとでは異なります。 .PP 文字クラスが有効なのは、 文字リストのブラケットの中の正規表現だけです。 文字クラスは、 .B [: と、クラスを表現するキーワードと、 .B :] で構成されます。 以下に POSIX 表現で定義される文字クラスを示します。 .TP .B [:alnum:] アルファベットと数値文字。 .TP .B [:alpha:] アルファベット文字。 .TP .B [:blank:] 空白とタブ文字。 .TP .B [:cntrl:] 制御文字。 .TP .B [:digit:] 数値文字。 .TP .B [:graph:] 印字可能で可視な文字。 (空白は印字可能ですが見えません。一方 .B a は印字可能かつ可視です。) .TP .B [:lower:] アルファベット文字の小文字。 .TP .B [:print:] 印字可能な文字 (制御文字以外)。 .TP .B [:punct:] 句読点文字 (レター、数値、制御文字、空白文字のいずれでもない文字)。 .TP .B [:space:] 空白文字 (空白、タブ、フォームフィード等の少数の文字を指す)。 .TP .B [:upper:] アルファベット文字の大文字。 .TP .B [:xdigit:] 16 進数の数値。 .PP 例えば、POSIX 標準以前では、アルファベットと数値の文字にマッチするためには、 .B /[A\-Za\-z0\-9]/ と書きました。しかし、別のアルファベット文字が文字集合に含まれる場合、 それらにはマッチしません。 POSIX 文字クラスでは、 .BR /[[:alnum:]]/ と記述することができ、文字集合の .I すべて のアルファベットと数値にマッチします。 .PP 文字リスト中には、更に 2 つの特殊シーケンスを使用できます。 これらは、 複数の文字によって表現される単一シンボル ( .I 照合文字 と呼ばれます) を持ち、 複数の文字が .I 参照 やソートにおいては等価であるとされる、非 ASCII 文字集合に適用されます。 (例えば、フランス語では単なる ``e'' とグレーブアクセント付きの e\` とでは 等価です。) .TP 照合シンボル 参照シンボルは複数文字の参照要素であり、 .B [. と .B .] で括ります。 例えば、 .B ch が参照要素の場合、 .B [[.ch.]] は正規表現となり、この参照要素にマッチします。 一方、 .B [ch] は .B c か .B h にマッチする正規表現です。 .TP 等価クラス 等価クラスは 等価な文字リストを指すロケール固有の名前です。名前は .B [= と .B =] で括ります。 例えば、名前 .B e は ``e,'' ``e\`,'', ``e\`.'' のすべてを表現するために使用されるかもしれません。 この場合、 .B [[=e=]] は .BR e , .BR e\' , .BR e\` のいずれかにマッチする正規表現となります。 .PP これらの機能は英語以外のロケールにて非常に有用です。 .I gawk が正規表現のマッチングに使用するライブラリ関数は、 現在 POSIX 文字クラスのみを理解し、 参照シンボルと等価クラスは理解しません。 .PP .BR \ey , .BR \eB , .BR \e< , .BR \e> , .BR \ew , .BR \eW , .BR \e` , .B \e' の演算子は .IR gawk 固有であり、GNU 正規表現ライブラリの機能を元にした拡張です。 .PP 様々なコマンドラインオプションによって、正規表現中の文字を .I gawk がどのように解釈するのかを制御できます。 .TP オプション無し デフォルトでは、 .I gawk は上述の POSIX 正規表現および GNU 正規表現のすべての機能を提供します。 しかしながら、インターバル表現はサポートされません。 .TP .B \-\^\-posix POSIX 正規表現のみがサポートされ、GNU 演算子はサポートされません (例えば、 .B \ew はリテラル .B w にマッチします)。 インターバル表現は許されます。 .TP .B \-\^\-traditional 伝統的な Unix .I awk の正規表現がサポートされます。GNU 演算子、インターバル表現、 POSIX 文字クラス ( .B [[:alnum:]] など) はサポートされません。 8 進または 16 進のエスケープシーケンスで表現される文字は、 正規表現のメタ文字を表現するとしても、 リテラルとして扱われます。 .TP .B \-\^\-re\-interval .B \-\^\-traditional が指定されていたとしても、正規表現中でインターバル表現をサポートします。 .SS アクション アクションは、ブレース .B { と .B } で囲みます。アクションは通常の代入、条件文、 ループ文等からなります。演算子、制御文、入出力文は C 言語とほぼ同様です。 .SS 演算子 .PP AWK での演算子を、優先順位の高いものから順に示します。 .PP .TP "\w'\fB*= /= %= ^=\fR'u+1n" .BR ( \&... ) グループ化。 .TP .B $ フィールド参照。 .TP .B "++ \-\^\-" インクリメント、デクリメント。前置も後置も可能。 .TP .B ^ べき乗(\fB**\fR も同様の意味で使用できる。また \fB**=\fR 代入演算子も存在する)。 .TP .B "+ \- !" 単項のプラス、マイナス、論理否定。 .TP .B "* / %" 乗算、除算、剰余。 .TP .B "+ \-" 加算と減算。 .TP .I space 文字列結合。 .TP .PD 0 .B "< >" .TP .PD 0 .B "<= >=" .TP .PD .B "!= ==" 通常の関係演算子。 .TP .B "~ !~" 正規表現マッチ、否定のマッチ。 .B 注意: .B ~ と .B !~ の左辺に正規表現定数 .RB ( /foo/ 等) を用いてはいけません。正規表現定数は右辺にのみ置くことができます。式 .BI "/foo/ ~ " exp は \fB(($0 ~ /foo/) ~ \fIexp\fB)\fR と等価であり、これは通常意図するものとは異なります。 .TP .B in 配列のメンバ。 .TP .B && 論理 AND。 .TP .B || 論理 OR。 .TP .B ?: C 言語の条件式と同様です。 .IB expr1 " ? " expr2 " : " expr3\c の形式で使います。もし .I expr1 が真なら式の値は .I expr2 になり、そうでなければ .I expr3 になります。 .I expr2 か .I expr3 のうち片方のみが評価されます。 .TP .PD 0 .B "= += \-=" .TP .B "*= /= %= ^=" 代入。絶対代入 .BI ( var " = " value ) と演算子代入 (他の形式) がサポートされています。 .SS 制御ステートメント .PP 制御ステートメントは以下のとおりです。 .PP .RS .nf \fBif (\fIcondition\fB) \fIstatement\fR [ \fBelse\fI statement \fR] \fBwhile (\fIcondition\fB) \fIstatement \fR \fBdo \fIstatement \fBwhile (\fIcondition\fB)\fR \fBfor (\fIexpr1\fB; \fIexpr2\fB; \fIexpr3\fB) \fIstatement\fR \fBfor (\fIvar \fBin\fI array\fB) \fIstatement\fR \fBbreak\fR \fBcontinue\fR \fBdelete \fIarray\^\fB[\^\fIindex\^\fB]\fR \fBdelete \fIarray\^\fR \fBexit\fR [ \fIexpression\fR ] \fB{ \fIstatements \fB} .fi .RE .SS 入出力ステートメント .PP 入出力ステートメントは以下のとおりです。 .PP .TP "\w'\fBprintf \fI書式, 式の列\fR'u+1n" .BI close( file ) ファイル (またはパイプ、下記参照) をクローズします。 .TP .B getline 次のレコードを .B $0 に読み込みます。 .BR NF , .BR NR , .B FNR が設定されます。 .TP .BI "getline <" file ファイル .I file から次のレコードを .B $0 に読み込みます。 .B NF が設定されます。 .TP .BI getline " var" 次のレコードを変数 .I var に読み込みます。 .BR NR , .B FNR が設定されます。 .TP .BI getline " var" " <" file ファイル .I file から次のレコードを変数 .I var に読み込みます。 .TP .B next 現在のレコードに対する処理を終了し、次のレコードを読み込み、AWK プログ ラムの最初のパターンから処理を開始します。 C 言語の continue と類似した意味を持ちます。 もし、入力データの終端に達した場合、 .B END ブロックが存在すれば実行されます。 .TP .B "nextfile" 現在の入力ファイルに対する処理を終了し、次の入力ファイルからレコードを 読み込みます。 .B FILENAME と .B ARGIND が更新され、 .B FNR が 1 にリセットされ、AWK プログラムの 最初のパターンから処理が開始されます。入力データの終端に達したときは、 もし存在すれば、 .B END ブロックが実行されます。 .B 注: 以前のバージョンの gawk では .BR "next file" と 2 語で使用されていました。この用法はまだ認識されますが、 警告メッセージを生じさせますし、最終的には無くなる表現です。 .TP .B print 現在のレコードを出力します。 出力レコードは .B ORS 変数の値にて終端されます。 .TP .BI print " expr-list" 式を出力します。各式は .B OFS の値で区切られます。出力されるレコードの最後に は .B ORS の値が付加されます。 .TP .BI print " expr-list" " >" file 式をファイル .I file に出力します。各式は .B OFS の値で区切られます。出力されるレコードの 最後には .B ORS の値が付加されます。 .TP .BI printf " fmt, expr-list" 書式付き出力です。 .TP .BI printf " fmt, expr-list" " >" file ファイル .I file への書式付き出力です。 .TP .BI system( cmd-line ) コマンド .I cmd-line を実行し、終了ステータスを返します(\*(PX に対応しない システムでは使用できない場合があります)。 .TP \&\fBfflush(\fR[\fIfile\^\fR]\fB)\fR オープンされている出力ファイルまたはパイプ .I file に関連づけられているバッファをフラッシュします。 .I file を指定しないと、標準出力がフラッシュされます。 .I file が空文字列の場合、オープンされているすべてのファイルとパイプのバッファを フラッシュします。 .PP その他の形式のリダイレクトとして以下のものが利用可能です。 .B print と .B printf に対して、 .BI >> file を指定すると出力はファイル .I file に追加され、 .BI | " command" は出力をパイプに対して行います。同様に、 .IB command "| getline" はコマンドの出力から .B getline を行ないます。 .B getline はファイル終端では 0 を、エラー時には \-1 を返します。 .SS \fIprintf\fP\^ ステートメント .PP AWK での .B printf ステートメントと .B sprintf() 関数(後述参照)は、以下の変換指定書式を受け付けます。 .TP .B %c 1 つの \s-1ASCII\s+1 文字。 .B %c に対応する引数が数値なら、その値を \s-1ASCII\s+1 コードとみなし て文字に変換します。そうでなければ、引数は文字列であると解釈され、その1 文字目が出力されます。 .TP .B %d .PD 0 .TP .B %i 10進数(整数部分)。 .TP .PD 0 .B %e .TP .PD .B %E .B [-]d.dddddde[+-]dd という形式の浮動小数点数。 .B %E 形式では .B e の代りに .B E が使用されます。 .TP .B %f .B [-]ddd.dddddd という形式の浮動小数点数。 .TP .PD 0 .B %g .TP .PD .B %G .B %e と .B %f の短い方の形式の浮動小数点数。余計な 0 は省略されます。 .B %G 形式では .B %e の代りに .B %E を使用します。 .TP .B %o 符号なしの 8 進数(整数)。 .TP .B %s 文字列。 .TP .PD 0 .B %x .TP .PD .B %X 符号なしの 16 進数(整数)。 .B %X 形式では、 .B abcdef の代りに .B ABCDEF を用います。 .TP .B %% 単一の文字 .B % 。引数は使用しません。 .PP .B % と上記の制御文字との間にオプショナルな追加のパラメータを置く ことができます。以下にそれらを示します。 .TP .B \- 左寄せ。 .TP .I 空白 数値変換において、正の値のプレフィックスは空白となり、 負の値のプレフィックスはマイナス記号となります。 .TP .B + プラス記号は幅修正子 (後述) の前に使用し、 整形されるデータが正であったとしても、 数値変換に対して常に符号を付けることを指示します。 .B + は空白修正子に優先します。 .TP .B # ある制御レターに対して「別の形式」を使用します。 .BR %o に対しては先行する 0 を与え、 .BR %x と .BR %X に対しては非 0 の結果に対して先行する .BR 0x と .BR 0X を与えます。 .BR %e , .BR %E , .B %f に対しては結果に常に小数点を含めます。 .BR %g , .B %G に対しては結果の後尾から 0 を取り除きません。 .TP .B 0 先頭の .B 0 (ゼロ) はフラグとして動作し、 出力を空白ではなく 0 でパディングすることを示します。 これは非数値の出力書式に対しても適用されます。 このフラグが有効なのは、フィールド幅が印字される値の幅より広いときだけです。 .TP .I width フィールドが指定した幅 .I width になるようにパディングされます。フィールドは通常空白でパディングされます。 .B 0 フラグが使用された場合には 0 でパディングされます。 .TP .BI . prec 印字において使用する精度を数値で指定します。 .BR %e , .BR %E , .B %f の書式に対しては、小数点の右側に印字される数字の数を指定します。 .BR %g , .B %G の書式に対しては、仮数部の最大数を指定します。 .BR %d , .BR %o , .BR %i , .BR %u , .BR %x , .B %X の書式に対しては、印字される数字の最小数を指定します。 文字列に対しては、印字される文字列からとりだされる最大の文字数を指定します。 .PP \*(AN C の .B printf() の動的な幅 .I width と精度 .I prec の指定機能が使用できます。 .B 幅 または .B 精度 の指定部分に .B * を指定することで、その値を .B printf または .B sprintf() への引数で指定できます。 .SS 特殊ファイル名 .PP .B print や .B printf で書き込みときでも、 .B getline でファイルから読み取るときでも、 入出力リダイレクトを行う場合、 .I gawk は内部的な特殊なファイル名を解釈します。 これらのファイル名により、親プロセス(通常はシェルです)から受け継いだ オープン状態のファイルディスクリプタを用いて入出力を行ったり、実行中の .I gawk プロセスに関する情報を得ることができます。 特殊ファイル名は以下のとおりです。 .TP \w'\fB/dev/stdout\fR'u+1n .B /dev/pid 現在のプロセスのプロセスID(10進数で、最後に改行が付きます)を 読み込むことができます。 .TP .B /dev/ppid 現在のプロセスの親のプロセスのプロセスID(10進数で、最後に改行が付きます)を 読み込むことができます。 .TP .B /dev/pgrpid 現在のプロセスのプロセスグループ ID(10進数で、最後に改行が付きます) を読み込むことができます。 .TP .B /dev/user このファイルを読むことで、改行で終わる単一のレコードが得られます。 各フィールドは空白で区切られています。 .B $1 は .IR getuid (2) システムコールの値、 .B $2 は .IR geteuid (2) システムコールの値、 .B $3 は .IR getgid (2) システムコールの値、 .B $4 は .IR getegid (2) システムコールの値です。もし、さらにフィールドがあれば、 それは .IR getgroups (2) システムコールが返すグループ ID のリストです。 全てのシステムで複数のグループがサポートされているわけではありません。 .TP .B /dev/stdin 標準入力。 .TP .B /dev/stdout 標準出力。 .TP .B /dev/stderr 標準エラー出力。 .TP .BI /dev/fd/\^ n オープンされたファイルディスクリプタ .I n に対応しているファイル。 .PP エラーメッセージを出力するには、以下の方法が便利です。 .PP .RS .ft B print "You blew it!" > "/dev/stderr" .ft R .RE .PP もしこの機能が無かったら、次のようにするしかないところです。 .PP .RS .ft B print "You blew it!" | "cat 1>&2" .ft R .RE .PP これらのファイル名は、コマンドラインのデータファイル指定で使うこともできます。 .SS 数値関数 .PP AWK は以下の定義済み数値関数を持っています。 .PP .TP \w'\fBsrand(\fR[\fIexpr\^\fR]\fB)\fR'u+1n .BI atan2( y , " x" ) .I y/x の逆正接をラジアンで与えます。 .TP .BI cos( expr ) .I expr の余弦をラジアンで与えます。 .TP .BI exp( expr ) 指数関数。 .TP .BI int( expr ) 整数への切捨て。 .TP .BI log( expr ) 自然対数。 .TP .B rand() 0 から 1 の間の乱数を与えます。 .TP .BI sin( expr ) .I expr の正弦をラジアンで与えます。 .TP .BI sqrt( expr ) 平方根。 .TP \&\fBsrand(\fR[\fIexpr\^\fR]\fB)\fR .I expr の値を乱数生成関数の種として用います。式が指定されなかった場合は、 時刻が用いられます。直前の種の値を返します。 .SS 文字列関数 .PP .I gawk は以下の定義済み文字列関数を持っています。 .PP .TP "\w'\fBsprintf(\^\fIfmt\fB\^, \fIexpr-list\^\fB)\fR'u+1n" \fBgensub(\fIr\fB, \fIs\fB, \fIh \fR[\fB, \fIt\fR]\fB)\fR 対象文字列 .I t から正規表現 .I r のマッチを探します。 .I h が .B g または .B G で開始する文字列の場合、マッチする .I r をすべて .I s に置き換えます。 そうでない場合、 .I h は何番目の .I r のマッチを置き換えるのかを示します。 .I t が与えられない場合、代りに .B $0 が使用されます。 置換テキスト .I s では、シーケンス .BI \e n\fR ただし .I n は 1 から 9 までの数字を使用して、 .I n 番目にマッチした括弧付きサブ式を示すことができます。 シーケンス .B \e0 は文字 .B & と同様、マッチしたテキスト全体を表します。 .B sub() や .B gsub() とは異なり、修正された文字列が関数の結果として返され、 元の対象テキストは変更され .I ません 。 .TP "\w'\fBsprintf(\^\fIfmt\fB\^, \fIexpr-list\^\fB)\fR'u+1n" \fBgsub(\fIr\fB, \fIs \fR[\fB, \fIt\fR]\fB)\fR 文字列 .I t 中で正規表現 .I r にマッチした部分をすべて .I s に置換します。置換の個数を返します。 .I t を指定しなかった場合は .B $0 が用いられます。 置換テキストでは、 .B & は実際にマッチしたテキストで置き換えられます。 .B \e& を使用するとリテラルの .B & を得ることができます。 .BR sub() , .BR gsub() , .B gensub() における .B & とバックスラッシュに関する完全な議論は .I "AWK Language Programming" を参照してください。 .TP .BI index( s , " t" ) 文字列 .I s 中に含まれる文字列 .I t の位置を返します。 .I t が含まれていない場合は 0 を返します。 .TP \fBlength(\fR[\fIs\fR]\fB) 文字列 .I s の長さを返します。 .I s を指定しなかった場合には .B $0 の長さを返します。 .TP .BI match( s , " r" ) 文字列 .I s 中で正規表現 .I r にマッチする位置を返します。マッチしない場合は 0 を 返します。 .B RSTART と .B RLENGTH の値が設定されます。 .TP \fBsplit(\fIs\fB, \fIa \fR[\fB, \fIr\fR]\fB)\fR 文字列 .I s を正規表現 .I r を用いて分割し、配列 .I a に格納します。 フィールド数を返します。 .I r が省略され た場合は .B FS が用いられます。配列 .I a の内容は、分割前にクリアされます。 分割は、上述のフィールド分割と同じ動作を行います。 .TP .BI sprintf( fmt , " expr-list" ) 書式 .I fmt に従って .I exp-list を整形表示し、結果の文字列を返します。 .TP \fBsub(\fIr\fB, \fIs \fR[\fB, \fIt\fR]\fB)\fR .B gsub() と似てますが、最初にマッチした文字列のみが置換されます。 .TP \fBsubstr(\fIs\fB, \fIi \fR[\fB, \fIn\fR]\fB)\fR 文字列 .I s の .I i 文字目から始まる最大 .I n 文字の部分文字列を返します。 .I n が省略された場合、 .I i 文字目以降の部分文字列が返されます。 .TP .BI tolower( str ) 文字列 .I str をコピーし、大文字をすべて小文字に変換したものを返します。 アルファベットでない文字は変化しません。 .TP .BI toupper( str ) 文字列 .I str をコピーし、小文字をすべて大文字に変換したものを返します。 アルファベットでない文字は変化しません。 .SS 時間関数 .PP タイムスタンプを含んだログファイルの処理は AWK プログラムの主な使い道の1つですから、 .I gawk はタイムスタンプを取り出したり、フォーマット するための 2 つの関数を提供します。 .PP .TP "\w'\fBsystime()\fR'u+1n" .B systime() 基準時点からの経過秒数を返します (\*(PX システムでは、基準時点は UTC で 1970 年 1 月 1 日 0:00 です)。 .TP \fBstrftime(\fR[\fIformat \fR[\fB, \fItimestamp\fR]]\fB)\fR 書式 .I format に従って .I timestamp をフォーマットします。 .I timestamp は .B systime() が返す値と同じ形式でなければなりません。 .I timestamp が省略された場合、現在の日付が使用されます。 .I format が省略された場合、 .IR date (1) が出力に使用するものと同じデフォルトフォーマットが使用されます。 利用可能なフォーマットについては、\*(AN C の .B strftime() 関数の仕様を参照して下さい。パブリックドメインな .IR strftime (3) とそのマニュアルページが .I gawk とともに配布されています。もし、 .I gawk を作成するためにその .B strftime を用いた場合は、そのマニュアルに記述されている変換書式が .I gawk でも利用可能です。 .SS 文字列定数 .PP AWK での文字列定数は、ダブルクォート(\fB"\fR)に狭まれた文字の列です。 文字列内では、C 言語のようにいくつかの .I エスケープシーケンス が使えます。 .PP .TP \w'\fB\e\^\fIddd\fR'u+1n .B \e\e バックスラッシュそのもの。 .TP .B \ea 「警告」文字。通常は \s-1ASCII\s+1 \s-1BEL\s+1 文字です。 .TP .B \eb バックスペース。 .TP .B \ef 改ページ(フォームフィード)。 .TP .B \en 改行。 .TP .B \er 復帰(キャリッジリターン)。 .TP .B \et 水平タブ。 .TP .B \ev 垂直タブ。 .TP .BI \ex "\^hex digits" .B \ex に続く 16 進数で表現された文字。\*(AN C と同様に、 .B \ex に続くすべての 16 進数字 はエスケープシーケンスの一部であるとみなされます。 (この機能によりコミッティによる言語デザインが分かります。) 例えば、\fB"\ex1B"\fR は \s-1ASCII\s+1 \s-1ESC\s+1 (エスケープ) 文字です。 .TP .BI \e ddd 1桁か2桁か3桁の 8 進数で表現された文字。例えば、 \fB"\e033"\fR は \s-1ASCII\s+1 \s-1ESC\s+1 (エスケープ) 文字です。 .TP .BI \e c 文字 c そのもの。 .PP エスケープシーケンスは正規表現定数内でも用いることができます(例えば、 .B "/[\ \et\ef\en\er\ev]/" は空白文字にマッチします)。 .PP 互換モードでは、8 進および 16 進のエスケープシーケンスで表現される文字は、 正規表現定数として使用された場合、リテラルとして扱われます。 それゆえ、 .B /a\e52b/ は .B /a\e*b/ と等価です。 .SH 関数 AWK では関数を以下のようにして定義します。 .PP .RS \fBfunction \fIname\fB(\fIparameter list\fB) { \fIstatements \fB}\fR .RE .PP 関数は、パターンまたはアクションの式から呼び出されたときに実行されます。 関数呼び出しにおいて与えられた実引数が、関数宣言における仮引数に 受け渡されます。 このとき配列の場合は参照渡しが行われ、他の変数の場合は値渡しで行われます。 .PP 元々 AWK に関数は備わっていませんでしたので、局所変数の機構はあまり スマートではありません。 局所変数は引数リストの余分な引数として宣言します。局所変数と関 数引数を区別するため、余分な空白で区切るのが慣習です。例えば、以下のよ うにします。 .PP .RS .ft B .nf function f(p, q, a, b) # a & b は局所変数 { \&..... } /abc/ { ... ; f(1, 2) ; ... } .fi .ft R .RE .PP 関数呼び出しにおける左括弧は、空白を狭まずに関数名の直後に 置かなければいけません。 これは、文字列結合演算子との曖昧さを生じさせないために必要です。 この制限は、上述の組み込み関数にはあてはまりません。 .PP 関数は、他の関数を呼び出したり、自分自身を再帰的に呼び出すことができます。 局所変数として用いられる関数引数は、関数起動時に空文字列および 0 に初期化されます。 .PP .B \-\^\-lint が指定されたとき、 .I gawk は実行時ではなくパーズ時に未定義関数の呼び出しに関して警告します。 実行時の未定義関数の呼び出しは致命的なエラーとなります。 .PP .B function のかわりに .B func を用いることができます。 .SH 使用例 .nf ``/etc/passwd'' から全ユーザのログイン名を取り出し、ソートして出力する。 .ft B BEGIN { FS = ":" } { print $1 | "sort" } .ft R ファイルの行数を数える。 .ft B { nlines++ } END { print nlines } .ft R 行番号をつける。 .ft B { print FNR, $0 } .ft R 全ファイルを通した行番号をつける。 .ft B { print NR, $0 } .ft R .fi .SH 関連項目 .IR egrep (1), .IR getpid (2), .IR getppid (2), .IR getpgrp (2), .IR getuid (2), .IR geteuid (2), .IR getgid (2), .IR getegid (2), .IR getgroups (2) .PP .IR "The AWK Programming Language" , Alfred V. Aho, Brian W. Kernighan, Peter J. Weinberger, Addison-Wesley, 1988. ISBN 0-201-07981-X. .PP .IR "AWK Language Programming" , Edition 1.0, published by the Free Software Foundation, 1995. .SH POSIX 互換 .I gawk は最新版の \*(UX .I awk との互換性だけでなく、\*(PX 標準との互換性も追求しています。 このため .I gawk には以下のような機能が取り入れられています。 これらの機能は AWK 本には述べられていませんが、 Bell Labs および \*(PX 標準の .I awk が有している機能です。 .PP プログラム実行前に変数代入を行なう .B \-v オプションは新しい物です。 AWK 本によれば、コマンドラインで指定された変数代入は .I awk が引数をファイル名としてオープンする際に行なわれることになります。つまり これは .B BEGIN ブロックの実行後です。しかしながら初期の頃の実装では、引数の中でファイル名に 先立って変数代入が指定されている場合には、代入は .B BEGIN ブロック実行の .I 前に 行われていました。そしてアプリケーションは、この「仕様」に依存する ようになりました。 .I awk がそのドキュメントに合うように直された時、昔の動作に依存している アプリケーションの便宜を図るためにこのオプションが加えられました。 (この仕様は AT&T および GNU の開発者達によって合意されました。) .PP 独自機能のための .B \-W オプションは \*(PX 標準に従ったものです。 .PP 引数の列に特別なオプション ``\fB\-\^\-\fP'' を指定すると、 .I gawk はそこがオプションの終わりであると解釈します。 互換モードにおいては未定義オプションは警告が出力され、それ以外のものは 無視されます。 通常の実行においては残りの引数は AWK プログラムに引き渡されます。 .PP AWK 本は .B srand() の返り値を定義していません。 \*(PX 標準 では、その関数が使っている種を返し、 乱数シーケンスを追跡できるようにしています。 したがって .I gawk における .B srand() も現在の種を返すようにしてあります。 .PP その他にも以下のような新機能があります。 .B \-f オプションの複数回使用 (MKS .IR awk に倣いました); .B ENVIRON 配列; エスケープシーケンス .B \ea と .B \ev ( .I gawk で最初に実装され、AT&T の .I awk にフィードバックされました); 組み込み関数 .B tolower() と .B toupper() (AT&T に倣いました); .B printf における \*(AN C 変換指定 (AT&T 版で最初に実装されました)。 .SH GNU 拡張 .I gawk は \*(PX .I awk に対して多くの拡張が行なわれています。 この節ではそれらについて解説します。 .B \-\^\-traditional オプション付きで .I gawk を起動することによって、 ここで述べられている拡張機能をすべて禁止することができます。 .PP .I gawk が持つ以下の機能は \*(PX .I awk では使用できません。 .RS .TP \w'\(bu'u+1n \(bu エスケープシーケンス .B \ex 。( .B \-\^\-posix で抑止できます。) .TP \w'\(bu'u+1n \(bu .B fflush() 関数。( .B \-\^\-posix で抑止できます。) .TP \(bu .BR systime() , .BR strftime() , .B gensub() の各関数。 .TP \(bu 入出力リダイレクトで利用可能な特殊ファイル名は理解されません。 .TP \(bu 変数 .BR ARGIND , .BR ERRNO , .B RT は特殊変数ではありません。 .TP \(bu 変数 .B IGNORECASE とその副作用は利用できません。 .TP \(bu 変数 .B FIELDWIDTHS と固定長フィールド分割。 .TP \(bu .B RS の正規表現としての使用。 .TP \(bu .B FS に空文字列を設定することにより各文字を切り出す能力と、 .B split() の 3 番目の引数。 .TP \(bu .B \-f オプションで指定されたファイル名についてパス検索を行わないこと。 よって、環境変数 .B AWKPATH は特殊な変数ではありません。 .TP \(bu 現在の入力ファイルに対する処理を終わらせるために使用される .B "nextfile" 。 .TP \(bu 配列全体を削除するために使用される .BI delete " 配列" 。 .RE .PP AWK 本は関数 .B close() の返り値を定義していません。 .I gawk の .B close() は、ファイルやパイプをクローズする際に呼び出す .IR fclose (3) や .IR pclose (3)、 からの返り値を返します。 .PP オプション .B \-\^\-traditional 付きで .I gawk を起動し .B \-F オプションへの引数 .I fs として ``t'' を与えた場合に、 .B FS の値はタブ文字に設定されます。 .B "gawk \-F\et \&..." とタイプしても、シェルが単に ``t'' をクォートするので、``\et'' は .B \-F オプションに渡されません。 これは少々見苦しい特殊事例ですので、デフォルトの動作としては 採用されていません。 .B \-\^\-posix を指定した場合にも、この動作は行なわれません。 タブ文字をフィールドセパレータとして使用したい場合には、 クォートを使用するのが最良です: .BR "gawk \-F'\et' \&..." . .ig .PP If .I awk was compiled for debugging, it will accept the following additional options: .TP .PD 0 .B \-Wparsedebug .TP .PD .B \-\^\-parsedebug Turn on .IR yacc (1) or .IR bison (1) debugging output during program parsing. This option should only be of interest to the .I gawk maintainers, and may not even be compiled into .IR gawk . .. .SH 歴史的機能 .I gawk は歴代の AWK の実装にあった 2 つの機能を備えています。 1 つめとして、組み込み関数 .B length() は引数無しで呼び出せるだけでなく、さらに括弧無しでも呼び出せます! したがって .RS .PP .ft B a = length # Holy Algol 60, Batman! .ft R .RE .PP は以下の2例と同じです。 .RS .PP .ft B a = length() .br a = length($0) .ft R .RE .PP \*(PX 標準ではこの機能は ``deprecated'' と注意書きされており、 .I gawk ではコマンドラインで .B \-\^\-lint を指定した場合に、この機能の使用に対して警告を出力します。 .PP もう 1 つは、 .BR while , .BR for , .B do ループ本体の外でも .BR continue , .B break ステートメントを使用できるという機能です。 伝統的な AWK の実装では、このように使用した .B continue ステートメントを .B next ステートメントと等価なものとして扱ってきました。 .I gawk では .B \-\^\-traditional が指定された場合に、この機能を使うことができます。 .SH 環境変数 環境に .B POSIXLY_CORRECT が存在する場合には、 .I gawk はコマンドラインで .B \-\^\-posix が指定されている時と全く同じ動作をします。 このとき .B \-\^\-lint が指定されていると .I gawk はこの作用についての警告メッセージを出力します。 .PP .B AWKPATH 環境変数を使用して、 .I gawk が .B \-f および .B \-\^\-file オプションで指定されたファイル名を検索するディレクトリを指定できます。 .SH バグ コマンドラインでの変数代入機能を使用するには、変数への代入を直接 コマンドラインに書けばよく、 .B \-F オプションをつける必要はありません。 このオプションは昔の .I awk との互換性のためだけに残されています。 .PP ファイル .B /dev/fd および .BR /dev/stdin , .BR /dev/stdout , .B /dev/stderr を実際にサポートしているシステムでの .I gawk からは、それらがないシステムとは違った出力が得られるかもしれません。 .I gawk はそれらのファイルを内部で解釈する際に標準出力への出力を .B /dev/stdout への出力と同期させますが、それらのファイルを持つシステムでは 出力はそれぞれ異なるファイルへ向けられます。 利用者の方で気を付けるようにしてください(Caveat Emptor)。 .PP 文法的に誤った単一文字プログラムはパーズスタックを溢れさせる傾向があり、 まったく分からないメッセージを生成する傾向にあります。 このようなプログラムの診断は驚くべきことに一般に難しく、 診断の努力はまったく無意味になります。 .SH バージョン情報 このマニュアルは .IR gawk バージョン 3.0.2 について記載しています。 .SH 作者 \*(UX .I awk の最初のバージョンは、AT&T Bell Labs の Alfred Aho と Peter Weinberger および Brian Kernighan によって設計、実装されました。 Brian Kernighan はその保守と改良を続けています。 .PP Free Software Foundation の Paul Rubin と Jay Fenlason が、Seventh Edition \*(UX で配布された最初のバージョンの .I awk と互換性を持つように .I gawk を書きました。 John Woods は数々のバグ修正を送って下さいました。 David Trueman は、Arnold Robbins が送って下さった内容をもとに、 .I gawk を新バージョンの \*(UX .I awk 互換にしました。 .PP DOS への最初の移植は Conrad Kwok と Scott Garfinkle によって 行なわれました。 現在は Scott Deifik が DOS 版の保守をしています。 Pat Rankin は VMS への移植を行ない、Michal Jaegermann は Atari ST への 移植を行ないました。 OS/2 への移植は Kai Uwe Rommel が Darrel Hankerson の助けを借りて 行ないました。 Fred Fish が Amiga サポートの提供を行いました。 .SH バグレポート .I gawk のバグを見付けたら、電子メールを .B bug-gnu-utils@prep.ai.mit.edu 宛に送るとともに、カーボンコピーを .B arnold@gnu.ai.mit.edu 宛に送ってください。 電子メールには、オペレーティングシステムとそのリビジョン、 .I gawk のリビジョン、コンパイルに使用した C コンパイラ、 問題を再現するできるだけ小さなテストプログラムとデータを記述してください。 .PP バグレポートを送る前に 2 つのことを行ってください。 第 1 に、最新の .I gawk を使用されていることを確認してください。 多くの (通常微妙な) バグが各々のリリースで修正されていますので、 ご使用のものが古い場合には問題は既に解決されているかもしれません。 第 2 に、このマニュアルページとリファレンスマニュアルを注意深く読み、 あなたがバグだと思うものが確かにバグであり、 大きく変わった言語仕様ではないことを確認してください。 .PP バグレポートを .B comp.lang.awk に投稿することだけはしないでください。 .I gawk の開発者達は時々このニュースグループを読みますが、 バグレポートをこのニュースグループに投稿しても バグレポートとして信頼性がありません。 上記のアドレスへの電子メールでお願いします。 .SH 謝辞 Bell Labs の Brian Kernighan はテストおよびデバッグの間、貴重な助力を 提供して下さいました。 感謝致します。 -.SH 複製許諾 +.SH COPYING PERMISSIONS Copyright \(co\) 1996 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this manual page provided the copyright notice and this permission notice are preserved on all copies. .ig Permission is granted to process this file through troff and print the results, provided the printed document carries copying permission notice identical to this one except for the removal of this paragraph (this paragraph not being relevant to the printed manual page). .. .PP Permission is granted to copy and distribute modified versions of this manual page under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. .PP Permission is granted to copy and distribute translations of this manual page into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Foundation. diff --git a/ja/man/man1/cccp.1 b/ja/man/man1/cccp.1 index 833962a530..191f47a0d9 100644 --- a/ja/man/man1/cccp.1 +++ b/ja/man/man1/cccp.1 @@ -1,650 +1,650 @@ .\" Copyright (c) 1991, 1992, 1993 Free Software Foundation -*- nroff -*- .\" See section COPYING for conditions for redistribution .\" .\" %Id: cpp.1,v 1.3 1994/11/02 09:07:33 deraadt Exp % .\" jpman %Id: cccp.1,v 1.2 1997/05/12 00:19:12 jsakai Stab % .\" .TH cpp 1 "April 30, 1993" "FreeBSD" "GNU Tools" .SH 名称 cpp \- GNU-C 互換のコンパイラプリプロセッサ .SH 書式 .hy 0 .na .TP .B cpp .RB "[\|" \-$ "\|]" .RB "[\|" \-A \c .I predicate\c .RB [ (\c .I value\c .BR ) ]\|] .RB "[\|" \-C "\|]" .RB "[\|" \-D \c .I name\c .RB [ =\c .I definition\c \&]\|] .RB "[\|" \-dD "\|]" .RB "[\|" \-dM "\|]" .RB "[\|" "\-I\ "\c .I directory\c \&\|] .RB "[\|" \-H "\|]" .RB "[\|" \-I\- "\|]" .RB "[\|" "\-imacros\ "\c .I file\c \&\|] .RB "[\|" "\-include\ "\c .I file\c \&\|] .RB "[\|" "\-idirafter\ "\c .I dir\c \&\|] .RB "[\|" "\-iprefix\ "\c .I prefix\c \&\|] .RB "[\|" "\-iwithprefix\ "\c .I dir\c \&\|] .RB "[\|" \-lang\-c "\|]" .RB "[\|" \-lang\-c++ "\|]" .RB "[\|" \-lang\-objc "\|]" .RB "[\|" \-lang\-objc++ "\|]" .RB "[\|" \-lint "\|]" .RB "[\|" \-M\ [ \-MG "\|]]" .RB "[\|" \-MM\ [ \-MG "\|]]" .RB "[\|" \-MD\ \c .I file\ \c \&\|] .RB "[\|" \-MMD\ \c .I file\ \c \&\|] .RB "[\|" \-nostdinc "\|]" .RB "[\|" \-nostdinc++ "\|]" .RB "[\|" \-P "\|]" .RB "[\|" \-pedantic "\|]" .RB "[\|" \-pedantic\-errors "\|]" .RB "[\|" \-traditional "\|]" .RB "[\|" \-trigraphs "\|]" .RB "[\|" \-U \c .I name\c \&\|] .RB "[\|" \-undef "\|]" .RB "[\|" \-Wtrigraphs "\|]" .RB "[\|" \-Wcomment "\|]" .RB "[\|" \-Wall "\|]" .RB "[\|" \-Wtraditional "\|]" .br .RB "[\|" \c .I infile\c .RB | \- "\|]" .RB "[\|" \c .I outfile\c .RB | \- "\|]" .ad b .hy 1 .SH 解説 C プリプロセッサは、 実際のコンパイルの前にプログラムを変換するために C コンパイラから自動的に利用される .I マクロプロセッサ\c です。 長い記述を簡略してマクロとして定義することができるため、 マクロプロセッサと呼ばれます。 C プリプロセッサは、以下の4つの機能を提供します。 .TP \(bu ヘッダファイルを読み込みます。 これは プログラムに組み込まれる (C 言語の)宣言の入ったファイルです。 .TP \(bu C 言語の任意の部分の省略形として \c .I マクロ\c \&を定義し、C プリプロセッサがプログラム内の全てのマクロを その定義で置き換えます。 .TP \(bu 条件文の処理をします。専用のプリプロセッサコマンドを用いて、 いろいろな条件にしたがってプログラムの一部を含めたり除外したりできます。 .TP \(bu 行番号の制御をします。 ソースファイルと コンパイルされた中間ファイルとを組み合わせたり再アレンジしたりするプログラムを 用いる場合、 コンパイラにオリジナルのソースの何行目であるかを知らせるための、 行番号制御のプリプロセッサコマンドを利用できます。 .PP C プリプロセッサは、そのインプリメントによって細かな部分に違いが いくつかあります。GNU C プリプロセッサの完全なドキュメントは、 .B info ファイルの `\|\c .B cpp.info\c \&\|', もしくは、マニュアルの .I The C Preprocessor\c \&を参照して下さい。 この双方は `\|\c .B cpp.texinfo\c \&\|'から生成されます。GNU C プリプロセッサは ANSI Standard C のスーパセットと なっています。 ANSI Standard C では、今日 C プログラムで一般的に用いられている多くの (無害な)構造が認められていません。 この非互換性はユーザにとっては不便であり、そのため GNU C preprocessor ではこの記述をデフォルトで受け付けるように作られています。 厳密にいえば、 ANSI Standard C にするためには オプションとして `\|\c .B \-trigraphs\c \&\|', `\|\c .B \-undef\c \&\|', `\|\c .B \-pedantic\c \&\|'をつけなければなりません。 しかし経験則から、厳密な ANSI Standard C にあわせてこうした設定を 行なうと支障のある場合が多いことがわかっています。 ほとんどの場合は、C プリプロセッサは明示的に実行する必要はありません。 C コンパイラが自動的に実行してくれるからです。しかしながら、 明示的にプリプロセッサを実行するのが有効なことが個々にはあります。 C プリプロセッサ は、引数として \c .I infile\c \& と \c .I outfile\c \&の 2 つのファイル名を期待します。 プリプロセッサは `\|\c .B #include\c \&\|'で指定したファイルと一緒に \c .I infile\c を読み込みます。 入力ファイルの組み合わせで作られた出力は、 全て \c .I outfile\c \&に書かれます。 .I infile\c \& と \c .I outfile\c \& の指定に `\|\c .B \-\c \&\|'を使用することができます。\c .I infile\c \& が `\|\c .B \-\c \&\|' であれば\c \& 標準入力からデータを読み、\c .I outfile\c \& が `\|\c .B \-\c \&\|' であれば標準出力へ結果を書きます。もし \c .I outfile\c \& もしくは両方のファイル名が省略された場合、 省略されたファイルの代わりに標準入力と標準出力が使われます。 .SH オプション 以下が C プリプロセッサが受け付けるオプションの一覧です。 これらのオプションは、 プリプロセッサがコンパイラから起動されている場合にも 自動的に引き渡されるので、 C プログラムをコンパイルする際にも指定することができます。 .TP .B \-P `\|\c .B #\c \&\|'-行番号 という行番号情報をプリプロセッサの出力に含めません。 これは、C 以外の言語で行番号情報が含まれているとエラーを起こす言語を 処理する場合に有用でしょう。 .TP .B \-C コメントを削除せず、そのまま出力ファイルに含めます。 マクロ呼び出しの引数に現れるコメントはマクロ呼び出しの展開後にコピーされます。 .TP .B -traditional ANSI ではなく、旧形式の C の文法として解釈します。 .TP .B -trigraphs ANSI標準のトリグラフ(trigraph)構文を処理します。 これは ANSI C で 1 文字を表示すると定められた `\|\c .B ??\c \&\|' で始まる 3 文字の並びです。例えば、`\|\c .B ??/\c \&\|' は `\|\c .BR "\e" "\|'" を表しますので、`\|\c .B '??/n'\c \&\|' は改行文字の文字定数となります。 厳密に言えば、GNU C プリプロセッサの `\|\c .B \-trigraphs\c \&\|' オプションは ANSI C 標準を完全にはサポートしません。 が、普通のユーザならばその違いに気づく事は稀でしょう。 トリグラフについで、これ以上知りたいとは思わないでしょ? .TP .B \-pedantic `\|\c .B #else\c \&\|' や `\|\c .B #endif\c \&\|' の後にコメント以外のテキストがつくといった場合に、 ANSI C 標準で求められる警告を出力します。 .TP .B \-pedantic\-errors `\|\c .B \-pedantic\c \&\|' に似ていますが、警告ではなくエラーにします。 .TP .B \-Wtrigraphs トリグラフがあると警告を出力します(ただし、トリグラフの処理は行います)。 .TP .B \-Wcomment .TP .B \-Wcomments コメント開始シーケンスである `\|\c .B /*\c \&\|' がコメント中に存在したならば警告を発生します (両形式は同じ効果を持ちます)。 .TP .B \-Wall `\|\c .B \-Wtrigraphs\c \&\|' と `\|\c .B \-Wcomment\c \&\|' (ただし `\|\c .B \-Wtraditional\c \&\|' は除く) を指定したのと同じです。 .TP .B \-Wtraditional ANSI と伝統派の C とで異なる振る舞いをとる構文が出現した場合に 警告を発します。 .TP .BI "\-I " directory\c \& ディレクトリ \c .I directory\c \& をヘッダファイルを検索するディレクトリリストの末尾に追加します。 このオプションは、指定したディレクトリが システムのヘッダファイルが格納されているディレクトリよりも先に 検索されるので、ユーザ自身の作成したバージョンで システムが提供するヘッダファイルを上書きさせることもできます。 1 つ以上の `\|\c .B \-I\c \&\|' オプションを使用する場合、ディレクトリは左から右の順番で検索され、 標準のシステムヘッダファイルはその後になります。 .TP .B \-I\- `\|\c .B \-I\-\c \&\|' オプションよりも前に指定された `\|\c .B \-I\c \&\|' オプションで与えられたディレクトリは、`\|\c .B #include \c \&"\c .I file\c \&"\c \&\|' のインクルード文の場合にのみ検索されます。`\|\c .B #include <\c .I file\c \&>\c \&\|' では検索されません。 オプション `\|\c .B \-I\-\c \&\|' の後のオプション `\|\c .B \-I\c \&\|' に追加のディレクトリが指定された場合、それらのディレクトリは 全ての `\|\c .B #include\c \&\|' 文で検索されます。 付け加えて言うならば、`\|\c .B \-I\-\c \&\|' オプションを指定すると、カレントディレクトリは `\|\c .B #include \c .I \&"file\c \&"\c \&\|' 文に対する最初の検索ディレクトリではなくなります。 それゆえ、カレントディレクトリは明示的に `\|\c .B \-I.\c \&\|' として指定された場合にのみ検索されることになります。 `\|\c .B \-I\-\c \&\|' と `\|\c .B \-I.\c \&\|' を双方とも指定することで、どのディレクトリがカレントディレクトリ の前に、あるいは後に検索されるかを厳密に指定することができます。 .TP .B \-nostdinc ヘッダファイルの検索に標準システムディレクトリを用いません。`\|\c .B \-I\c \&\|' オプションで指定したディレクトリ(と、もし適切であるならば カレントディレクトリ)が検索されます。 .TP .B \-nostdinc++ ヘッダファイルの検索に C++ 仕様の標準ディレクトリを用いません。 が、その他の標準ディレクトリは検索します。 (このオプションは libg++ の構築時に用いられます。) .TP .BI "\-D " "name"\c \& \c .I name\c \& を既定義のマクロとして、`\|\c .B 1\c \&\|' に定義します。 .TP .BI "\-D " "name" = definition \& \c .I name\c \& をマクロとして\c .I definition\c \& に定義します。\c .I definition\c \& の内容に制限はありませが、プリプロセッサをシェルやシェルに類似した プログラムから起動している場合、シェルの文法上意味を持つスペース などの文字を保護するため、そのシェルのクォート文法を使用する必要が あります。もし、1 つの .I name\c \& に対して複数の `\|\c .B \-D\c \&\|' を指定したならば、もっとも右側の定義が有効となります。 .TP .BI "\-U " "name"\c \&\c .I name\c \& を定義しません。同一の \c .I name\c \& に対して `\|\c .B \-U\c \&\|' と `\|\c .B \-D\c \&\|' の双方が指定された場合、`\|\c .B \-U\c \&\|' が `\|\c .B \-D\c \&\|' に優先し、 \c .I name\c \& は定義されません。 .TP .B \-undef 非標準のマクロを一切定義しません。 .TP .BI "\-A " "name(" value ) (\c .B #assert\c \& コマンドと同じ方法で) 述語 \c .I name\c \& にトークンリスト \c .I value\c \& をアサートします。シェルのコマンドライン上では括弧を エスケープするなりクォートすることを忘れないで下さい。 既定義のアサーション全てを取り消すのに、`\|\c .B \-A-\c \&\|' を使えます。これはまた、既定義のマクロ全てを無効にします。 .TP .B \-dM プリプロセッサの結果を出力する代わりに、 プリプロセッサの実行中に定義された、既定義のものも含む全てのマクロの `\|\c .B #define\c \&\|' コマンドのリストを出力します。 これは、使用しているプリプロセッサのそのバージョンで、 どんなマクロが既定義であるかを知る方法を提供してくれます。 それには、空のファイル `\|\c .B foo.h\c \&\|' をこのオプションで処理してみればよいのです。 .sp .br touch\ foo.h;\ cpp\ \-dM\ foo.h .br .sp はすべての既定義マクロの値を見せてくれるでしょう。 .TP .B \-dD `\|\c .B \-dM\c \&\|' に似てますが、2 つの相違点があります。これは既定義マクロを 出力\c .I しません\c \&。また、`\|\c .B #define\c \&\|' コマンドとプリプロセス結果の\c .I 双方\c \& を出力します。これらの出力は両方とも標準出力に行われます。 .PP .TP .BR \-M\ [ \-MG ] プリプロセスの結果を出力する代わりに、main のソースファイルの依存性を 記述する\c .B make\c \& 規則を出力します。 プリプロセッサはソースファイルのオブジェクトファイル名、コロン、 そのすべてのインクルードファイル名から成る\c .B make\c \& 規則を出力します。複数のインクルードファイルがある場合、規則は`\|\c .B \\\\\c \&\|'-改行で複数行に区切られます。 `\|\c .B \-MG\c \&\|' は、見つけられなかったヘッダファイルは(コンパイルの途中で)生成され、 ソースファイルと同じディレクトリに存在するものとして扱います。`\|\c .B \-M\c \&\|' と共に指定しなければなりません。 この機能は自動的に Makefile を更新するのに使います。 .TP .BR \-MM\ [ \-MG ] これは `\|\c .B \-M\c \&\|' に似てますが、`\|\c .B #include "\c .I file\c \&"\c \&\|' でインクルードされるファイルのみを扱う点が異なります。`\|\c .B #include <\c .I file\c \&>\c \&\|' でインクルードされるシステムヘッダファイルは無視されます。 .TP .BI \-MD\ file これも `\|\c .B \-M\c \&\|' に似てますが、依存情報が`\|\c .I file\c \&\|' に書き出されます。\(em\&`\|\c .B \-MD\c \&\|' を指定したファイルの処理もこれに加えて行われ、`\|\c .B \-M\c \&\|' のように通常の処理を抑制することはありません。 gcc を実行する場合は `\|\c .I file\c \&\|' 引数を指定してはいけません。gcc は、入力ファイル名の末尾の `\|\c .B .c\c \&\|' を `\|\c .B .d\c \&\|' で置き換えたファイル名を出力に用いるからです。 Mach では、`\|\c .B make\c \&\|' コマンドで便利なように複数のファイルを 1 つの依存規則ファイルに まとめるユーティリティ \c .B md\c \& が利用できます。 .TP .BI \-MMD\ file `\|\c .B \-MD\c \&\|' に似てますが、ユーザのヘッダファイルのみを扱い、システムヘッダは 無視する点が異なります。 .TP .B \-H 通常の動作に加えて、 使用されたヘッダファイルのファイル名を出力します。 .TP .BI "\-imacros " "file"\c \& ファイル \c .I file\c \& を入力として処理しますが、 標準の入力ファイルを処理する前にその結果の出力を破棄します。 .I file\c \& によって生成される出力は捨てられるため、`\|\c .B \-imacros \c .I file\c \&\c \&\|' の処理結果の影響は、\c .I file\c \& 中に記述されたマクロがメインの入力ファイル中で使用可能になることだけです。 プリプロセッサは、`\|\c .B \-imacros\c .I file\c \&\|' を処理する前に、 コマンドラインから与えられた全ての `\|\c .B \-D\c \&\|' や `\|\c .B \-U\c \&\|' オプションを評価します。 .TP .BI "\-include " "file"\c \& ファイル \c .I file\c \& を、標準の入力ファイルの前に処理し、その結果出力をインクルードします。 .TP .BI "\-idirafter " "dir" ディレクトリ \c .I dir\c \& を第 2 インクルードパスに加えます。第 2 インクルードパス中の ディレクトリは、メインインクルードパス (オプション `\|\c .B \-I\c \&\|' によって追加されます) 中にヘッダファイルを探した結果 発見できなかった場合に検索されます。 .TP .BI "\-iprefix " "prefix" \c .I prefix\c \& を、その後に続く `\|\c .B \-iwithprefix\c \&\|' オプション用のプレフィックスとして使用します。 .TP .BI "\-iwithprefix " "dir" ディレクトリを第 2 インクルードパスに追加します。ディレクトリ名は \c .I prefix\c \& と \c .I dir\c \& を連結することによって得られます。ここで \c .I prefix は `\|\c .B \-iprefix\c \&\|' オプションによって指定されたものです。 .TP .B \-lang-c .TP .B \-lang-c++ .TP .B \-lang-objc .TP .B \-lang-objc++ ソースの言語を指定します。`\|\c .B \-lang-c++\c \&\|' は、プリプロセッサに C++ のコメント文と、C++ 用の追加の デフォルトインクルードディレクトリを処理させ、`\|\c .B \-lang-objc\c \&\|' は、Objective C の `\|\c .B #import\c \&\|' ディレクティブを使用可能にします。`\|\c .B \-lang-c\c \&\|' は明示的にこれらの機能の切り離しを指定し、`\|\c .B \-lang-objc++\c \&\|' は双方を利用可能にします。 これらのオプションはコンパイラドライバ \c .B gcc\c \& によって生成されますが、`\|\c .B gcc\c \&\|' のコマンドラインから引き渡すことはできません。 .TP .B \-lint コメント中に埋め込まれた、プログラムチェッカ \c .B lint\c \& のコマンドを見つけ出し、それらの前に `\|\c .B #pragma lint\c \&\|' を埋め込みます。例えば、コメント `\|\c .B /* NOTREACHED */\c \&\|' は `\|\c .B #pragma lint NOTREACHED\c \&\|' になります。 このオプションは直接 \c .B cpp\c \& を呼び出す場合にのみ使えます。\c .B gcc\c \& は、コマンドラインからこのオプションを引き渡しません。 .TP .B \-$ 識別子中での `\|\c .B $\c \&\|' の使用を禁止します。これは ANSI 規格からの要求です。 オプション `\|\c .B \-ansi\c \&\|' を指定した場合、\c .B gcc\c \& は自動的にこのオプションを設定します。が、\c .B gcc\c \& は `\|\c .B \-$\c \&\|' オプションそれ自身を認識しているわけではありません。 \(em\& `\|\c .B \-ansi\c \&\|' の他の効果を抜きにこれを使うには、 プリプロセッサを直接呼び出さねばなりません。 .SH 関連項目 .B info\c \&; .I The C Preprocessor\c , Richard M. Stallman. 中のエントリ .RB "`\|" cpp "\|'" .br .BR gcc "(" 1 ");" .B info\c \&; .I Using and Porting GNU CC (for version 2.0)\c , Richard M. Stallman. 中のエントリ .RB "`\|" gcc "\|'" -.SH 著作権表示 +.SH COPYING Copyright (c) 1991, 1992, 1993 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. .PP Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. .PP Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. diff --git a/ja/man/man1/crontab.1 b/ja/man/man1/crontab.1 index 02ac2503b0..b7fb30c27b 100644 --- a/ja/man/man1/crontab.1 +++ b/ja/man/man1/crontab.1 @@ -1,120 +1,120 @@ .\"/* Copyright 1988,1990,1993 by Paul Vixie .\" * All rights reserved .\" * .\" * Distribute freely, except: don't remove my name from the source or .\" * documentation (don't take credit for my work), mark your changes (don't .\" * get me blamed for your possible bugs), don't alter or remove this .\" * notice. May be sold if buildable source is provided to buyer. No .\" * warrantee of any kind, express or implied, is included with this .\" * software; use at your own risk, responsibility for damages (if any) to .\" * anyone resulting from the use of this software rests entirely with the .\" * user. .\" * .\" * Send bug reports, bug fixes, enhancements, requests, flames, etc., and .\" * I'll try to keep a version up to date. I can be reached as follows: .\" * Paul Vixie uunet!decwrl!vixie!paul .\" */ .\" .\" %Id: crontab.1,v 1.5 1998/03/23 08:21:29 charnier Exp % .\" jpman %Id: crontab.1,v 1.2 1997/04/18 06:38:25 yugawa Stab % .\" .Dd December 29, 1993 .Dt CRONTAB 1 .Os .Sh 名称 .Nm crontab .Nd 個人用の crontab の編集を行う (V3) .Sh 書式 .Nm crontab .Op Fl u Ar user .Ar file .Nm crontab .Op Fl u Ar user { .Fl l | .Fl r | .Fl e } .Sh 解説 .Nm crontab は、 Vixie Cron の .Xr cron 8 デーモンが扱うテーブル内のエントリの 追加、削除、およびリスト表示を行います。各ユーザは、自分用の crontab ファイルを持つことができます。このファイルは .Pa /var 内にありますが、 これはエディタで直接変更するためのものではありません。 .Pp もし .Pa allow ファイル .Pq Pa /var/cron/allow が存在した場合、このコマンドを 使うためには、あなたの名前がこの .Pa allow ファイルになければなりません。また、 .Pa allow ファイルは存在しないが .Pa deny ファイル .Pq Pa /var/cron/deny が存在した場合に、 このコマンドを使うためには、あなたの名前がこの .Pa deny ファイルにあっては .Em いけません 。 どちらのファイルも存在しない場合、サイト依存の設定パラメータにより スーパーユーザだけがこのコマンドを使うことができるか、 すべてのユーザがこのコマンドを使うことができるかが決定されます。 .Pp このコマンドの最初の書式は file から新しい crontab をインストールする 場合に使います。ファイル名として ``-'' が指定された時は、標準入力から 読み込みます。 .Pp 以下のオプションを使用可能です: .Bl -tag -width indent .It Fl u 指定した -ユーザ +user の crontab ファイルに対して操作を行います。 このオプションがない場合には、コマンドを実行した人 の crontab ファイルに対しての操作になります。 .Xr su 8 をしている場合は混乱する可能性がありますから、正確を期するため、この場合には .Fl u をつねにつけるようにすべきです。 .It Fl l 現在の crontab ファイルを標準出力に表示します。 .It Fl r 現在の crontab ファイルを削除します。 .It Fl e 現在の crontab を編集します。環境変数 .Ev VISUAL もしくは .Ev EDITOR があれば、この環境変数で指定したエディタを利用します。 エディタを終了すれば、crontab ファイルが自動的にインストールされます。 .El .Sh 関連項目 .Xr crontab 5 , .Xr cron 8 .Sh 関連ファイル .Bl -tag -width /var/cron/allow -compact .It Pa /var/cron/allow .It Pa /var/cron/deny .El .Sh 規格 .Nm コマンドは .St -p1003.2 準拠です。 この新しい文法は以前の Vixie Cron のものとも 古典的な SVR3 のものとも異なっています。 .Sh 診断 誤ったコマンドラインを与えて実行した場合、 使用法についてのかなり有益なメッセージが出力されます。 .Sh 作者 .An Paul Vixie Aq paul@vix.com diff --git a/ja/man/man1/ctm.1 b/ja/man/man1/ctm.1 index d48c222fe5..3fe873429b 100644 --- a/ja/man/man1/ctm.1 +++ b/ja/man/man1/ctm.1 @@ -1,315 +1,315 @@ .\"---------------------------------------------------------------------------- .\""THE BEER-WARE LICENSE" (Revision 42): .\" wrote this file. As long as you retain this notice you .\"can do whatever you want with this stuff. If we meet some day, and you think .\"this stuff is worth it, you can buy me a beer in return. Joerg Wunsch .\"---------------------------------------------------------------------------- .\" .\" This manual page is partially obtained from Poul-Hennings CTM README .\" file. .\" .\" CTM and ctm(1) by .\" .\" %Id: ctm.1,v 1.14 1998/04/20 20:57:16 rnordier Exp % .\" jpman %Id: ctm.1,v 1.3 1997/09/27 16:26:57 ryo2 Stab % .\" .Dd Mar 25, 1995 .Os .Dt CTM 1 .Sh 名称 .Nm ctm .Nd ソースコードをミラーするプログラム .Sh 書式 .Nm ctm .Op Fl cFklquv .Op Fl b Ar basedir .Op Fl B Ar backup-file .Op Fl e Ar include-regex .Op Fl t Ar tar-command .Op Fl T Ar tmpdir .Op Fl V Ar level .Op Fl x Ar exclude-regex .Ar .Sh 解説 .Nm は、元々 .Dq Cvs Through eMail でしたが、今は代わりに .Dq Current Through eMail と呼ぶのがふさわしいようです。 .Nm は、今や 2 つのバージョンのディレクトリツリーの間でデルタを作成して 適用するための最も信頼できる方法を意味します。 これにはデルタの作成と適用という 2 つの部分があります。2 つは 全く異なるものです。 .Ss 使用例 CTM デルタを適用するには、それを .Nm コマンドに渡します。CTM デルタを標準入力、またはファイル名を引数として 渡すことができます。後者の方法を取ると、とても簡単に することができます。なぜなら このプログラムは gzip で圧縮された ファイルを受け付けて、ファイルの一時的なコピーを作る必要が無いからです。 複数のデルタを一度に指定でき、それらは一度にひとつずつ処理されます。 すでに適用されているデルタは無視されます。 .Nm コマンドの実行はたくさんのパスにわかれています。 次のパスを始める前に、それぞれのパスで入力ファイルの全体が処理されます。 .Ar name で指定されたファイルを処理する前に .Nm は まず .Ar name.ctm というファイルが存在するかどうかをチェックします。 存在すれば、 .Nm は、かわりにそちらを処理します。 パス 1 では、入力ファイルが正常かどうかを確認します。 文法、データ、全体の MD5 によるチェックサムがチェックされます。 いずれか 1 つでも異常があれば、 .Nm は単純に入力ファイルを拒否します。 パス 2 ではディレクトリツリーが CTM デルタの期待している状態に なっているかどうかを確認します。これは存在する/しないはずの ファイルとディレクトリファイルとディレクトリを捜して ファイルの MD5 によるチェックサムをチェックすることで行われます。 もし .Ar backup-file が .Fl B オプションで指定されていると、その .Nm の呼び出しで変更されるファイルが .Fl t オプションで指定されたアーカイバコマンドを使って、そのファイルに バックアップされます。デフォルトのアーカイバコマンドは .Nm "tar -rf %s -T -" です。 パス 3 では実際にデルタが適用されます。 .Nm によって変更されるファイルのリストは、 .Fl e と .Fl x オプションで指定された正規表現によるフィルタの対象になります。 .Fl e と .Fl x オプションは、コマンドラインで指定された順に適用されます。 与えられたファイル名に最後にマッチしたフィルタが、そのファイルを .Nm の適用対象とするかどうかを決定します。 .Nm は、その作業ディレクトリ下にファイルの階層を展開します。 絶対パスや .Sq \&. と .Sq \&.\&. の参照を含むファイル名は、セキュリティのために明確に禁止されています。 .Ss オプション .Bl -tag -width indent -compact .It Fl b Ar basedir 各ファイル名に .Ar basedir で指定されたパスを前置します。 .It Fl B Ar backup-file この CTM の実行で変更されるすべてのファイルを .Ar backup-file にバックアップします。 .Fl e と .Fl x オプションで何らかのフィルタが指定されると、 CTM の実行時にフィルタが適用され、変更されたファイルが、 最終的にバックアップされるファイルのセットとなります。 .It Fl c 確認だけを行ない、他には何もしません。 .It Fl e Ar regular_expression CTM ファイル中の各ファイル名が .Ar regular_expression にマッチするかどうかを調べ、マッチすればそのファイルを処理し、 マッチしなければ何もせずそのまま残します。 このオプションは何個でも指定できます。このオプションを指定すると .Pa .ctm_status のシーケンス番号のチェックが行なわれません。 例えば、 .Ic ^usr.sbin/ctm と指定すると、 .Nm usr.sbin/ctm というソースディレクトリと、その下のすべてのパス名を指定した事に なります。 CTM の処理対象からパス名を外すには .Fl x オプションを使います。 .It Fl F 強行します。 .It Fl k ファイルとディレクトリを保存し、CTM ファイルで削除するように 指定されているものでも削除しません。 .Fl B オプションが指定されると、そのファイルとディレクトリは バックアップされません。 .It Fl l その CTM の実行で変更されるはずのファイルと、それに対して 行われるアクションをリストします。 .Fl l オプションを使うと .Pa .ctm_status のチェックと作業対象のソースツリーの正当性チェックが行なわれません。 .Fl l オプションは、 .Fl e と .Fl x オプションを組み合わせることで、与えるコマンドラインオプションで どのファイルが変更されるかを見定めることができます。 .It Fl q 表示を減らします。 .It Fl t Ar tar-command デフォルトのアーカイバである .Nm tar の代わりに .Ar tar-command を使います。 このオプションは、バックアップファイルが .Fl B オプションで指定された場合にのみ効果があります。 tar command 中には一つだけ %s を置くことができ、 バックアップファイルの名前に置き換えられます。 .It Fl T Ar tmpdir 一時ファイルを .Ar tmpdir に置きます。 .It Fl u 作成、変更されるファイルの更新時刻を CTM デルタが作成された 時刻に設定します。 .It Fl v 表示を増やします。 .It Fl V Ar level 表示を増やします。 .Ar level は饒舌さの程度です。 .It Fl x Ar regular_expression CTM ファイル中の各ファイル名を .Ar regular_expression とマッチするかどうかを調べ、マッチすればそのファイルを除外します。 このオプションは何個でも指定できます。このオプションを指定すると .Pa .ctm_status のシーケンス番号のチェックが行なわれません。 CTM の処理対象にパス名を加えるには .Fl e オプションを使います。 .El .Sh 環境変数 .Ev TMPDIR にパス名がセットされていると、ctm は一時ファイルの置き場所として そのパス名を使います。 これに関しての詳細は .Xr tempnam 3 を参照して下さい。 同じ効果は .Fl T フラグでも得られます。 .Sh 関連ファイル .Pa .ctm_status には、最後に適用した CTM デルタのシーケンス番号が含まれます。 このファイルを変更したり削除したりすると、 .Nm は、とても混乱します。 .Fl e と .Fl x オプションを使うとソースツリーの一部分を更新することができ、 ソースを一貫性のない状態にすることになります。 これらのオプションを使うときには、何をしているのかを理解していることが 仮定されています。 .Sh 使用例 .Bd -literal cd ~cvs /usr/sbin/ctm ~ctm/cvs-* .Ed `lib' 以下のすべてのソースを取り出してパッチを当てるには 以下のようにします。 .Bd -literal cd ~/lib-srcs /usr/sbin/ctm -e '^lib' ~ctm/src-cur* .Ed .Sh 診断 充分に説明的であるはずの沢山のメッセージが出力されます。 .Dq ノイズレベル は .Fl q , .Fl v , .Fl V オプションで調整できます。 .Sh 関連項目 .Xr ctm_rmail 1 , .Xr ctm 5 .Sh 歴史 最初の試みは -.Xx 1.1.5 +.Fx 1.1.5 の作業中に行われました。そして、たくさんの バグと手法について徹底的に議論されました。 .Nm コマンドは .Fx 2.1 から登場しました。 .Sh 作者 CTM システムは .An Poul-Henning Kamp Aq phk@FreeBSD.org によってデザインされ実装されました。 このマニュアルページは .An Joerg Wunsch Aq joerg@FreeBSD.org が書きました。 .Sh 日本語訳 野首 寛高(h-nokubi@nmit.mt.nec.co.jp): FreeBSD 用に翻訳 diff --git a/ja/man/man1/error.1 b/ja/man/man1/error.1 index bcafbc005b..bf5ec76e90 100644 --- a/ja/man/man1/error.1 +++ b/ja/man/man1/error.1 @@ -1,301 +1,301 @@ .\" Copyright (c) 1980, 1990 The Regents of the University of California. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)error.1 8.1 (Berkeley) 6/6/93 .\" jpman %Id: error.1,v 1.2 1997/03/29 02:29:02 horikawa Stab % .\" .Dd June 6, 1993 .Dt ERROR 1 .Os BSD 4 .Sh 名称 .Nm error .Nd コンパイラのエラーメッセージを解析する .Sh 書式 .Nm error .Op Fl n .Op Fl s .Op Fl q .Op Fl v .Op Fl t Ar suffixlist .Op Fl I Ar ignorefile .Op name .Sh 解説 .Nm は、エラーメッセージの解析を行ない、 多くのコンパイラや言語処理系で生成されたエラーメッセージを、 ソースファイル上で実際にエラーが発生した場所に配置させます。 このコマンドは、紙の上にエラーを適当に省略してメモするという 骨のおれる古臭い作業に代わるもので、 スクリーンエディタのマルチウィンドウ機能の助けなしで エラーメッセージとソースコードを一緒に眺められるようにします。 .Pp 本コマンドで使用可能なオプションは以下の通りです: .Bl -tag -width indent .It Fl n 一切のファイルの書き換え (touch) を .Em しません。 すべてのエラーメッセージは、 標準出力に送られます。 .It Fl q ユーザにファイルの書き換えをするかどうかを尋ねます。質問に対して ``y'' か ``n'' を答えないと処理を継続できません。 .Fl q オプションを指定しない場合には、参照された全てのファイル (捨ててしまったエラーメッセージだけが参照していたものを除く) は書き換えの対象になります。 .It Fl v 全てのファイルの書き換えが終った後で、エディタ .Xr \&vi 1 を起動し、書き換えたすべてのファイルの編集を準備します。そして、 書き換えた最初のファイルの最初のエラーのところに位置あわせをします。 .Xr \&vi 1 が見つからない場合には、かわりに .Xr \&ex 1 もしくは .Xr \&ed 1 を通常の場所から起動します。 .It Fl t スイッチに続いて指定された引数をサフィックスリストとして取得します。 サフィックスリストにないサフィックスを持つファイルは、本コマンドに よる書き換えの対象となりません。 -サフィクスリストにはサフィクスをドットで区切って並べて下さい。 +サフィックスリストにはサフィックスをドットで区切って並べて下さい。 また、``*'' によるワイルドカード指定も有効です。 例えば、以下に示すようなサフィックスリスト .Pp .Dl ".c.y.foo*.h" .Pp は、 .Nm コマンドが ``.c'', ``.y'', ``.foo*'', ``.h'' のいずれかのサフィックス で終了するファイル名のファイルを書き換えることを許可していることを意味します。 .It Fl s エラーのカテゴリ別の統計情報を出力します。 あまり役に立つものではありません。 .It Fl I .Pa ~/.errorrc の代わりに使うファイル名を指定します。 .El .Pp .Nm コマンドは、 .Ar name で指定したファイルから読み込まれた、もしくは標準入力から送られたエラー メッセージを見て、 それぞれのエラーメッセージを吐き出した言語処理系の判定を試みます。 そして各エラーメッセージが参照しているソースファイルと行番号を決定し、 無視してよいエラーメッセージかどうかを判定した後で、 対応するソースプログラムのファイルの当該エラーが参照している行の直前に (少し変更した)エラーメッセージをコメントの形で挿入します。 言語処理系や内容によるカテゴリ分けが出来ないエラーメッセージは、 いかなるファイルにも挿入されずに、標準出力に送られます。 .Nm は、全ての入力を読み終わった後でしかソースファイルを書き換えません。 .Pp .Nm コマンドは、標準入力をパイプを経由して、 エラーメッセージを吐き出すプログラムにつないで使うことを想定しています。 言語処理系の中には、エラーメッセージを標準エラーに出すものもあれば、 標準出力に出すものもあります。 したがって、両方のエラーの出力先を、ともにパイプによって .Nm コマンドに送ったほうがよいでしょう。 例えば、 .Xr csh 1 を使用した場合の書式では、 .Pp .Dl make \-s lint \&| error \-q \-v .Pp のようになります。こうすれば、 .Xr make 1 を用いてターゲット lint をメイクしたときに、 どんなプログラムが実行されたとしても、全てのエラーを解析する ことができるでしょう。 .Pp .Nm は、 .Xr make 1 , .Xr \&cc 1 , .Xr cpp 1 , .Xr ccom 1 , .Xr \&as 1 , .Xr \&ld 1 , .Xr lint 1 , .Xr \&pi 1 , .Xr \&pc 1 , .Xr f77 1 , .Em DEC Western Research Modula\-2 の各処理系で生成されたエラーメッセージを解析することが出来ます。 .Nm コマンドは、言語プロセッサによって生成されるエラーメッセージの標準形式を 内部に持っているため、その形式の変更には敏感です。 .Em Pascal を除く全ての処理系では、エラーメッセージは1行に制限されています。 また、エラーメッセージの中には、複数のファイルの複数の行を参照する ものがあります。 .Nm コマンドはエラーメッセージを複製し、そのエラーメッセージの参照する全ての行に 対して情報を付加します。 .Pp .Nm コマンドは、 それぞれのエラーメッセージに対して以下の6つの動作のうち1つを行ないます。 .Bl -tag -width Em 同期 (synchronize) .It Em 同期 (synchronize) 言語処理系の中には、どのファイルを現在処理しているかについて短い メッセージを生成するものがあります。 .Nm コマンドは、この情報を用いて、それぞれのエラーメッセージに ファイル名を含めないような言語についてのファイル名を判定します。 これらの同期メッセージは、 .Nm コマンドによって使われ、出力されることはありません。 .It Em 捨てる (discard) 以下の2つの .Xr lint 1 ライブラリ、 .Pa /usr/libdata/lint/llib-lc および .Pa /usr/libdata/lint/llib-port のうち、どちらか一方を参照する .Xr lint 1 からのエラーメッセージは捨てます。 これは、誤ってこれらのライブラリを書き換えることがないようにするためです。 ここでもこれらのエラーメッセージは、 .Nm コマンドによって使われ、出力されることはありません。 .It Em 無効化 (nullify) 特定の関数に対する .Xr lint 1 からのエラーメッセージのうち、すでに出ることが分かっていて必要のない情報は、 無効化することができます。 無効化されたエラーメッセージは、ソースファイルには挿入されず、 標準出力へ送られます。 無視される関数名は、ユーザのホームディレクトリ配下の .Pa .errorrc ファイルもしくは .Fl I オプションによって名前を指定したファイルのどちらかによって与えます。 このファイルが存在しない場合には、どのエラーメッセージも無効化されません。 ファイルが存在する場合には、関数名は1行に1つずつ記述しなければなりません。 .It Em ファイルと関連しない (not file specific) 読み方がわからないエラーメッセージはひとまとめにされ、 ファイルを書き換える 前に標準出力に送られます。 これらのエラーメッセージは、どのソースファイルにも挿入されません。 .It Em ファイルと関連 (file specific) 特定のファイルを参照するが、 特定の行を参照しないエラーメッセージについては、 そのファイルの書き換えを行なう時に標準出力に送られます。 .It Em 確かなエラー (true errors) その他の、読み方がわかるエラーメッセージは、 そのエラーメッセージの参照するファイル への挿入の候補となります。 .El .Pp 確かなエラーメッセージのみファイル挿入の候補とされます。 他のエラーメッセージは、全て .Nm コマンドによって処理されるか、あるいは標準出力 に対して送られます。 .Nm コマンドは、エラーメッセージをソースファイル上のエラー 行の直前の行に挿入します。 各エラーメッセージは、各言語の 1 行のコメントの形に変形されます。 そして、エラーの先頭に文字列 ``###'' を、エラーの最後尾に 文字列 ``%%%'' を付加して、内部的な印をつけます。 これにより、エディタを用いたエラーのパターン検索が簡単になり、 挿入されたメッセージを取り除くのも簡単になります。 加えて、各エラーメッセージは、 そのエラーメッセージが参照する行のソース上の行番号を含んでいます。 きちんとした形式に整えられたソースプログラムは、 挿入されたメッセージを削除しなくとも、 それらのエラーメッセージが深刻なエラーを起こすことなく再コンパイルが可能です。 しかし、C や Pascal のように自由形式で記述が可能な言語で、 なおかつソースプログラムの形式がきちんと整っていない場合には、 コメントの中にコメントが入ってしまうことが考えられます。 すると、後のコンパイル時に何らかの不具合が生じることが十分考えられます。 このことを回避するためには、 複数の行からなるコメントとプログラムの実体が同じ行にあるようなプログラムでは、 コメントの前にプログラム言語の文が現れるようにしてください。 .Pp .Nm コマンドは、インタラプトシグナルおよびターミネートシグナルを受け取ります。 シグナルを受けたのがコメントを挿入する段階だった場合には、 実行中の操作を整然と終了します。 .Sh 関連ファイル .Bl -tag -width ~/.errorrc -compact .It Pa ~/.errorrc .Xr lint 1 のエラーメッセージを無視する関数名 .It Pa /dev/tty ユーザの端末 .El .Sh 歴史 .Nm コマンドは、 .Bx 4.0 にて初めて実装されました。 .Sh 作者 .An Robert Henry .Sh バグ .Pp ユーザに問い合わせを行なうために、端末ファイルを直接オープンします。 .Pp ハードリンクされたソースファイルについては、 他とリンクされない新しい複製を作ります。 他のリンクファイルにはその結果が反映されません。 .Pp 言語処理系のエラーメッセージの形式が変更された場合、 .Nm コマンドにはそのエラーメッセージが理解できなくなるかもしれません。 .Pp .Nm コマンドは 全く機械的に処理を行うため、 1つのつまらない文法上のエラーが原因で引き起こされる `水門の決壊 (floodgating)' により派生した後続のエラーをふるい落としません。 この種のエラーを無視することは、人間の方がずっと得意です。 .Pp Pascal のエラーメッセージは、本来はエラー行の後ろに来るべきです。 ( .Nm コマンドは、エラー行の前にエラーメッセージを置きますが。) また、エラーのある位置を示す `\\' の配置が .Nm コマンドによって乱れてしまいます。 .Pp .Nm コマンドは、適度に高速に表示される .Tn CRT を見つつ仕事を行うのに適したように設計されています。 遅い速度の端末を見ながら作業するのにはいささか不都合です。 まして、ハードコピー端末で使った人はいません。 diff --git a/ja/man/man1/file.1 b/ja/man/man1/file.1 index 221a500e9f..05eec2f140 100644 --- a/ja/man/man1/file.1 +++ b/ja/man/man1/file.1 @@ -1,405 +1,405 @@ .\" %Id: file.1,v 1.12 1998/03/23 07:43:13 charnier Exp % .Dd July 30, 1997 .Dt FILE 1 "Copyright but distributable" .Os .Sh 名称 .Nm file .Nd ファイルの種類を判定する .Sh 書式 .Nm file .Op Fl vczL .Op Fl f Ar namefile .Op Fl m Ar magicfiles .Ar .Sh 解説 このマニュアルは .Nm コマンドのバージョン 3.22 について記載しています。 .Nm は、namefile で指定されたファイルの種類を判定するプログラムです。判定の ために、ファイルシステムテスト、マジックナンバテスト、言語テストの 3 つのテストをこの順に実行し、 .Em 最初に 判定できた結果からファイルの種類を表示します。 .Pp ファイルの種類として表示されるのは、 .Em text ( .Tn ASCII キャラクタだけのファイルで、 .Tn ASCII 端末に表示した場合、 問題が起こらないもの)、 .Em executable ( .Ux カーネル等に理解可能な形にコンパイルされたプログラムを 含むファイル)、その他のものを意味する .Em data (data は、通常 `バイナリ' か表示不能なもの) のうちの 1 つです。 例外は、内部フォーマットがよく知られた、 バイナリデータを含むファイル (コアファイルや tar アーカイブ) です。 ファイル .Pa /usr/share/misc/magic やプログラムそのものを変更するときは、 .Em "これらのキーワードを残して下さい" 。 .Pp ディレクトリ内のすべての可読なファイルは、 単語 ``text'' を表示することが期待されています。 Berkeley で行われたように、``shell commands text'' を ``shell script'' と変更するようなことはしないで下さい。 .Pp ファイルシステムテストは、 .Xr stat 2 システムコールからの戻り値を調べることに基づいています。 このプログラムは、ファイルが空であるかどうか、ある種の 特殊ファイルであるかどうかを調べます。 使っているシステムに合った既知のファイルの種類 (システムに実装されたソケット、シンボリックリンク、 名前付きパイプ (FIFO)) は、システムヘッダファイル .Pa sys/stat.h で定義されていれば表示されます。 .Pp マジックナンバテストは、ファイルが固定フォーマットのデータであるか どうかをチェックするために使われます。 よい例が、実行可能なバイナリ実行形式 (コンパイルされたプログラム) .Pa a.out ファイルです。このフォーマットは標準インクルードディレクトリ内の .Pa a.out.h や場合により .Pa exec.h で定義されています。 実行ファイルは、 ファイルの先頭近くの特定の場所に、`マジックナンバ' を持ちます。 これは .Ux オペレーティングシステムに対し、 ファイルがバイナリ実行形式であり、 どのタイプの実行可能ファイルであるかを知らせます。 `マジックナンバ' の概念は拡張され、データファイルにも適用されています。 ファイルの先頭に近い固定位置に固定識別子があるファイルは、 このように記述できます。 これらのファイルの情報は、マジックファイル .Pa /usr/share/misc/magic から読み込まれます。 .Pp もしファイルが .Tn ASCII ファイルのようであるなら、 .Nm は、その言語を推定しようとします。 言語テストは、ファイルの始めの数ブロックに 特定の文字列 ( .Pa Inames.h を参照) があるかどうかを探します。たとえばキーワード .Em .br があればそれはおそらく .Xr troff 1 の入力ファイルであり、 .Em struct というキーワードは、C 言語のプログラムであることを示しています。 こうした推定方法は、前述の 2 つのテストより信頼性が低いため、 最後に行われます。言語テストルーチンは ( .Xr tar 1 アーカイブのような) その他のファイルもチェックし、未知のファイルを `ascii text' とすべきか、 `data' とすべきかを決定します。 .Sh オプション .Bl -tag -width indent .It Fl v プログラムのバージョンを表示して、終了します。 .It Fl m Ar list マジックナンバを含む別のファイルの .Ar list を指定します。 これは、1 つのファイルか、コロン (:) で分けられたファイルのリストです。 .It Fl z compress で圧縮されたファイルの中身を見ようとします。 .It Fl c マジックファイルを解析した形式を、調査できるように表示します。 通常、 新しいマジックナンバファイルを使う前にデバッグするために、 -.It Fl m +.Fl m オプションとともに用います。 .It Fl f Ar namefile 引数の前に .Ar name_file から調べるべきファイル名を (1 行に 1 つ) 読み込みます。 .Ar name_file もしくは引数の filename は少なくとも 1 つは指定しなければなりません。 標準入力のファイルの種類を判定させる場合は、 ファイル名として、``-'' を指定します。 .It Fl L オプションは(システムがシンボリックリンクを提供していれば)、 .Xr ls 1 コマンドの .Fl L オプションと同様にシンボリックリンクをたどって実際のファイルの中 身の種類を判定します。 .El .Sh 関連ファイル .Bl -tag -width /usr/share/misc/magic -compact .It Pa /usr/share/misc/magic デフォルトのマジックナンバのリスト (以前のバージョンの .Bx Free では .Pa /etc/magic でした) .El .Sh 環境変数 環境変数 .Em MAGIC は、デフォルトのマジックナンバファイルを指定するために 使うことができます。 .Sh 関連項目 .Xr od 1 , .Xr strings 1 , .Xr magic 5 .Sh 標準適合性 このプログラムは、その中に含まれる曖昧な言語をできるだけ特定できる ようになっており、 System V の FILE(CMD) で定義されるインタフェースを越えているはずです。 同名の System V のプログラムと、ほとんど動作は同じです。 しかし、このバージョンはより多くのマジックを知っているので、多くの場合に 異なった (より正確な) 出力を出します。 .Pp このバージョンと System V のものとの大きな違いは、 このバージョンは全ての空白を区切り文字として扱うため パターン内の空白はエスケープしなければならないということです。 たとえば、 .br >10 string language impress\ (imPRESS data) .br とマジックファイルに書かれていた場合は、次のように 変更せねばなりません。 .br >10 string language\e impress (imPRESS data) .br またこのバージョンでは、バックスラッシュを含んでいる パターンもエスケープしなくてはいけません。たとえば、 .br 0 string \ebegindata Andrew Toolkit document .br とマジックファイルに書かれていた場合は、次のように 変更せねばなりません。 .br 0 string \e\ebegindata Andrew Toolkit document .br .Pp Sun Microsystems の SunOS リリース 3.2 もしくはそれ以降には、 System V 由来の .Xr file 1 コマンドが含まれていますが、拡張がなされています。 このバージョンは SUN のものとは、細かい点でしか異なりません。 このバージョンには `&' 演算子の拡張が含まれています。 使い方は、次のようなものです。 .br >16 long&0x7fffffff >0 not stripped .Sh マジックディレクトリ マジックファイルのエントリは様々なソース (主に USENET) から集められたり、様々な作者から提供されました。 .An Chirstos Zoulas (下記のアドレス) が、 マジックファイルエントリをさらに集めたり訂正するでしょう。 統合したマジックファイルエントリは、定期的に配布されるでしょう。 .Pp マジックファイルにおけるエントリの順序は 重要です。 使っているシステムによって、エントリの順序が正しくなくなることが あります。 もし、あなたの古い .Nm コマンドがマジックファイルを使っているのなら、 比較のため古いマジックファイルを保存して下さい (たとえば、 .Pa /usr/share/misc/magic.orig という名前に変更します) 。 .Sh 歴史 .Nm コマンドは、少なくとも Research Version 6 (マニュアルページの日付は、1975 年 1 月) からはどの .Ux にもありました。 System V バージョンはある重要な変更、 すなわち外部マジックナンバリストを導入しました。 これによってプログラムのスピードはわずかに低下しましたが、 更にまた柔軟になりました。 .Pp このプログラムは、System V バージョンを基づいており、 .An Ian Darwin によって、他の誰かのソースコードを見ることなく 書かれました。 .Pp .An John Gilmore はコードを拡張し、最初の版よりも よいものにしました。 .An Geoff Collyer は 不適当なところが数箇所あるのを 発見し、いくつかマジックファイルエントリを 提供しました。 プログラムは、ずっと発展し続けています。 .SH 作者 .An Ian F. Darwin Aq ian@sq.com , UUCP アドレス {utzoo | ihnp4}!darwin!ian, 住所 P.O. Box 603, Station F, Toronto, Ontario, CANADA M4Y 2L8. により書かれました。 .Pp .An Rob McMahon Aq cudcv@warwick.ac.uk が 1989 年に、`&' 演算子を単純な `x&y != 0' から `x&y op z' に拡張するため変更しました。 .Pp .An Guy Harris Aq guy@auspex.com が 1993 年に、 .Bl -item -offset indent .It ``旧型'' の `&' 演算子を元のように戻しました。理由は、 .Bl -enum -offset indent .It Rob McMahon の変更によりこれまでの使用法ができなくなった。 .It このバージョンの .Nm がサポートする SunOS の ``新型'' の `&' 演算子で、`x&y op z' も扱える。 .It Rob の変更はドキュメントに書かれていなかった。 .El .It 他段階の `>' 追加。 .It ``beshort'', ``leshort'' などのキーワードの追加。 .Nm が動いているプロセスのバイトオーダではなく、 ファイル特有のバイトオーダで数字を見るようにするキーワードです。 .El .Pp .An Ian Darwin や .An Christos Zoulas Aq christos@deshaw.com を含む 多くの作者による 1990-1992 年の変更。 .Sh 法律上の注意 Copyright (c) Ian F. Darwin, Toronto, Canada, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993. .Pp This software is not subject to and may not be made subject to any license of the American Telephone and Telegraph Company, Sun Microsystems Inc., Digital Equipment Inc., Lotus Development Inc., the Regents of the University of California, The X Consortium or MIT, or The Free Software Foundation. .Pp This software is not subject to any export provision of the United States Department of Commerce, and may be exported to any country or planet. .Pp Permission is granted to anyone to use this software for any purpose on any computer system, and to alter it and redistribute it freely, subject to the following restrictions: .Pp .Bl -enum -offset indent .It The author is not responsible for the consequences of use of this software, no matter how awful, even if they arise from flaws in it; .It The origin of this software must not be misrepresented, either by explicit claim or by omission. Since few users ever read sources, credits must appear in the documentation; .It Altered versions must be plainly marked as such, and must not be misrepresented as being the original software. Since few users ever read sources, credits must appear in the documentation; .It This notice may not be removed or altered. .El .Pp A few support files ( .Fn getopt , .Fn strtok ) distributed with this package are in the public domain; they are so marked. .Pp The files .Pa tar.h and .Pa is_tar.c were written by .An John Gilmore from his public-domain .Nm tar program, and are not covered by the above restrictions. .Sh バグ マジックディレクトリから マジックファイルを自動的に作成するよりよい方法があるはずです。 それは何なのでしょうか。より起動を速くするため マジックファイルをバイナリにコンパイルするとよいでしょう。 (たとえば .Xr ndbm 3 あるいは、異機種ネットワーク環境では固定長の .Tn ASCII 文字)。 そうすれば、同名の バージョン 7 のプログラムと同じぐらいの速さで System V バージョンの柔軟性を持ったプログラムとなるでしょう。 .Pp .Nm には、正確さよりも 速度を重視したアルゴリズムが いくつかあるので .Tn ASCII ファイルの内容については 間違うことがあります。 .Pp .Tn ASCII ファイルのサポート ( 元々はプログラミング言語のため ) は 単純で、不十分であり、更新には再コンパイルが必要です。 .Pp 複数の行に渡るものをサポートするため ``else'' 項があるべきです。 .Pp マジックファイルと キーワードの正規表現を サポートするべきです。 .Tn ASCII TAB をフィールドの識別子にすることは醜く、 ファイルの編集を難しくしていますが、残されています。 .Pp キーワードに大文字を許すことが勧められます。たとえば、 .Xr troff 1 コマンドと man page マクロの区別です。 正規表現のサポートで、このことは簡単になるでしょう。 .Pp \s-2FORTRAN\s0 に対してプログラムが働きません。 行の先頭にインデントされているキーワードを見ることにより \s-2FORTRAN\s0 だと判別すべきです。 正規表現のサポートによりこれは簡単になるでしょう。 .Pp .Em ascmagic に入っている キーワードのリストは、おそらくマジックファイルに 入れるべきものです。 これはオフセットの値として `*' のようなキーワードを 使うことで可能でしょう。 .Pp 最初の文字、最初の語、最初の long などに関する テストを 最初に読み込んだときに全て行うことができるよう マジックファイルを並べ直す最適化法はないだろうか。 マジックファイルの矛盾について述べるようにならないか。 エントリーの順序を マジックファイル上の位置ではなく、 ファイルオフセット順にすることはできないだろうか。 .Pp プログラムは、推定が「どれぐらいよい」のかを知る方法を 提供すべきです。ファイルの最初の 5 文字が ``From '' であるときに推測をしても、 ``Newsgroups:'' や "Return-Path:" といった文字による推測ほどよくはないので、推測結果を 捨てることになります。しかし、もしそういった文字が 現れなければ最初の推定を使わなければなりません。 .Pp このプログラムは、いくつかの商用の .Nm コマンドより遅いです。 .Pp このマニュアルページ、特にこの節が長過ぎます。 .Sh 入手性 オリジナル作者の最新のバージョンを anonymous FTP で、 .Em ftp.deshaw.com の .Pa /pub/file/file-X.YY.tar.gz から手に入れることができます。 diff --git a/ja/man/man1/groff.1 b/ja/man/man1/groff.1 index 7d11cb26f8..82cae6ef00 100644 --- a/ja/man/man1/groff.1 +++ b/ja/man/man1/groff.1 @@ -1,412 +1,412 @@ .ig \"-*- nroff -*- Copyright (C) 1989-1995 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. .. .\" jpman %Id: groff.1,v 1.2 1997/05/13 16:13:14 horikawa Stab % .de TQ .br .ns .TP \\$1 .. .\" Like TP, but if specified indent is more than half .\" the current line-length - indent, use the default indent. .de Tp .ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP .el .TP "\\$1" .. .TH GROFF 1 "8 September 1996" "Groff Version 1.10" .SH 名称 groff \- groff ドキュメントフォーマットシステムのフロントエンド .SH 書式 .B groff [ .B \-tpeszaivhblCENRSVXZ ] [ .BI \-w name ] [ .BI \-W name ] [ .BI \-m name ] [ .BI \-F dir ] [ .BI \-T dev ] [ .BI \-f fam ] [ .BI \-M dir ] [ .BI \-d cs ] [ .BI \-r cn ] [ .BI \-n num ] [ .BI \-o list ] [ .BI \-P arg ] [ .IR files \|.\|.\|.\| ] .SH 解説 .B groff は、groff ドキュメントフォーマットシステムのフロントエンドプログラムです。通常 .B groff は .B troff を実行し、その出力を指定されたデバイスで扱うための 後処理プログラムを実行します。利用可能なデバイスは以下のとおりです: .TP .B ps PostScript プリンタやプレビュア .TP .B dvi TeX の dvi フォーマット .TP .B X75 75 dpi の X11 プレビュア .TP .B X100 100 dpi の X11 プレビュア .TP .B ascii タイプライタに似た特性を持つデバイス .TP .B latin1 ISO Latin-1 文字集合を利用するタイプライタに似た特性を持つデバイス .TP .B koi8-r ロシア語 KOI8-R 文字集合を利用するタイプライタに似た特性を持つデバイス .LP 指定されたデバイス用の後処理を行うプログラムは、デバイス記述ファイルの .B postpro コマンドにより指定されています。これは .B \-X オプションにより変更できます。 .LP デフォルトのデバイスは .B ps です。 .BR pic , .BR eqn , .BR tbl , .BR refer , .B soelim の任意の前処理を行わせることもできます。 .LP 引数を伴わないオプションは .B \- のあとにまとめて続けることができます。 ファイル名のかわりに用いられる .B \- は標準入力を意味します。 .LP .B grog コマンドを用いてドキュメントを正しくフォーマットするための .B groff コマンドを調べることができます。 .SH オプション .TP .B \-h ヘルプメッセージを表示します。 .TP .B \-e .B eqn を使って前処理を行います。 .TP .B \-t .B tbl を使って前処理を行います。 .TP .B \-p .B pic を使って前処理を行います。 .TP .B \-s .B soelim を使って前処理を行います。 .TP .B \-R .B refer を使って前処理を行います。 .B refer に引数を渡す機構は用意されていません。 .B refer のほとんどのオプションは、ファイル中に記述することができる等価なコマンドを 備えているからです。詳しくは .BR refer (1) のマニュアルを参照してください。 .TP .B \-v .B groff から起動されるプログラムのバージョン番号を表示します。 .TP .B \-V 実行しないで、 .B groff で実行される処理内容を標準出力に表示します。 .TP .B \-z .B troff からの出力を捨てます。エラーメッセージのみが表示されます。 .TP .B \-Z .B troff からの出力を後処理しません。通常 .B groff は、自動的に適当な後処理プログラムを起動します。 .TP .BI \-P arg 後処理プログラムに .I arg を引数として渡します。別々の引数は別々の .B \-P オプションで指定する必要があります。 .B groff は、 .I arg の前に .B \- をつけてコマンドに渡したりしないことに注意してください。 .TP .B \-l プリンタへ出力します。印字出力に用いられるコマンドは、デバイス 記述ファイルの .B print コマンドによって指定されます。 .TP .BI \-L arg .I arg をプリンタスプーラプログラムに渡します。別々の引数は、別々の .B \-L オプションで指定する必要があります。 .B groff は、 .I arg の前に .B \- をつけてコマンドに渡したりしないことに注意してください。 .TP .BI \-T dev デバイス .I dev 用に出力します。デフォルトのデバイスは .B ps です。 .TP .B \-X 通常の後処理プログラムのかわりに、 .B gxditview を起動してプレビューします。 .B groff は .B gxditview に .B -printCommand オプションを渡します。このオプションは .B groff に .B -l オプション指定時に実行される .B Print アクションを実行させます。 .B \-Tps 以外が指定されている場合は、よい結果が得られません。 .TP .B \-N .B eqn の区切り文字間に改行が入ることを禁止します。 .B eqn の .B \-N オプションと同様です。 .TP .B \-S より安全なモード。 .B \-S オプションを .B pic に渡し、 .B troff にて .B \%\-msafer マクロを使用します。 .TP .B \-a .TQ .B \-b .TQ .B \-i .TQ .B \-C .TQ .B \-E .TQ .BI \-w name .TQ .BI \-W name .TQ .BI \-m name .TQ .BI \-o list .TQ .BI \-d cs .TQ .BI \-r cn .TQ .BI \-F dir .TQ .BI \-M dir .TQ .BI \-f fam .TQ .BI \-n num これらのオプションの詳細は、 .BR troff (1) に記述してあります。 .SH 環境変数 .TP .SM .B GROFF_COMMAND_PREFIX もしこの変数が .I X に設定されていると、 .B groff は .B troff のかわりに .IB X troff を起動します。これは、 .BR tbl , .BR pic , .BR eqn , .BR refer , .B soelim にも同様に影響します。 .BR gropos , .BR grodvi , .BR grotty , .B gxditview には影響しません。 .TP .SM .B GROFF_TMAC_PATH マクロファイルを検索すべきディレクトリのリスト(リストの区切りはコロンです) .TP .SM .B GROFF_TYPESETTER デフォルトのデバイス .TP .SM .B GROFF_FONT_PATH .BI dev name という名前のディレクトリを検索するディレクトリのリスト(リストの区切りはコロンです) .TP .SM .B PATH .B groff から起動されるプログラムが存在するパス .TP .SM .B GROFF_TMPDIR 一時的なファイルが作成されるディレクトリ。もし、 .SM GRROFF_TMPDIR が設定さ れておらず、 .B .SM TMPDIR が設定されているなら、 .SM TMPDIR で示されるディレクトリ に一時ファイルが生成されます。さもなければ、一時ファイルは .B /tmp に作られます。 .BR grops (1) と .BR refer (1) が一時ファイルを作成する可能性があります。 .SH 関連ファイル .Tp \w'\fB/usr/share/groff_font/dev\fIname\fB/DESC'u+3n .BI /usr/share/groff_font/dev name /DESC デバイス .IR name のデバイス記述ファイル .TP .BI /usr/share/groff_font/dev name / F デバイス .I name のためのフォント .I F を記述したフォントファイル .SH 作者 James Clark .SH バグ バグレポートは、bug-groff@prep.ai.mit.edu. までお願いします。 レポートの際にはバグを再現できる完全な例題を添付し、あなたの利 用している groff のバージョンを添えて下さい。 -.SH 著作権 +.SH COPYRIGHT Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc. .LP groff はフリーソフトウェアです。Free Software Foundation から 出版されている the GNU General Public License の ver 2.0 かそ れ以降に基づく限り再配布したり、変更することが可能です。 .LP groff は使い易いツールとして配布されることを望まれていますが、 どのような保証もありません。それが商業的であってもある特定の目 的に対するだけであっても保証はありません。詳しくは GNU の General Public License を参照して下さい。 .LP あなた は groff のコピーを GNU General Public License と共に受 けとっているはずです。その COPYING を参照して下さい。そうでな い場合には、 Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA まで御連絡下さい。 .SH 入手性 最新の groff はたいてい prep.ai.mit.edu の pub/gnu ディレクト リに置かれており、anonymous ftp で入手できます。 .SH 関連項目 .\" .BR grog (1), .BR troff (1), .BR tbl (1), .BR pic (1), .BR eqn (1), .BR soelim (1) , .BR refer (1), .BR grops (1), .BR grodvi (1), .BR grotty (1), .\" .BR gxditview (1), .BR groff_font (5), .BR groff_out (5), .BR groff_ms (7), .BR me (7), .BR groff_char (7), .BR msafer (7) diff --git a/ja/man/man5/cvs.5 b/ja/man/man5/cvs.5 index 83c2613596..f57438de9d 100644 --- a/ja/man/man5/cvs.5 +++ b/ja/man/man5/cvs.5 @@ -1,365 +1,365 @@ .\" jpman %Id: cvs.5,v 1.2 1998/06/13 12:32:50 horikawa Chk % .\" WORD: concurrent version system: コンカレントバージョンシステム [cvs.1,cvs.5] .\" WORD: repository: (CVS の)リポジトリ [cvs.1,cvs.5] .\" WORD: commit: (通常の文中では)コミット [cvs.1,cvs.5] .\" WORD: check out: (通常の文中では)チェックアウト [cvs.1,cvs.5] .\" WORD: wrapper: ラッパ .\" WORD: newsgroup: ニュースグループ [limits.1,patch.1,init.8 のニュース] .\" WORD: history: (CVS の) ヒストリ [cvs.1,cvs.5] .\" WORD: template: テンプレート .TH cvs 5 "12 February 1992" .\" Full space in nroff; half space in troff .de SP .if n .sp .if t .sp .5 .. .SH 名称 cvs \- コンカレントバージョンシステムのサポートファイル .SH 書式 .hy 0 .na .TP .B $CVSROOT/CVSROOT/commitinfo,v .TP .B $CVSROOT/CVSROOT/cvsignore,v .TP .B $CVSROOT/CVSROOT/cvswrappers,v .TP .B $CVSROOT/CVSROOT/editinfo,v .TP .B $CVSROOT/CVSROOT/history .TP .B $CVSROOT/CVSROOT/loginfo,v .TP .B $CVSROOT/CVSROOT/modules,v .TP .B $CVSROOT/CVSROOT/rcsinfo,v .TP .B $CVSROOT/CVSROOT/taginfo,v .ad b .hy 1 .SH 解説 .B cvs は、ソースディレクトリの階層的な集合を 管理するシステムです。 \fBcvs\fP を使う際のコマンドと手続きは .BR cvs ( 1 ) に記述されています。 .SP .B cvs は、リビジョン管理されたファイルのマスタコピーを含むディレクトリである \fIソースリポジトリ\fP を管理し、 ここから開発者の個人的な \fI作業ディレクトリ\fP へ特定のリビジョンの ファイルをコピーしたり、作業ディレクトリから修正を採り入れたりします。 ファイルの構成という点から見ると、各ソースリポジトリは \fB$CVSROOT\fP の直下のサブディレクトリになります。 .SP ここで示すファイルは補助的なファイルであり、 \fBcvs\fP を利用するにあたって必須ではありませんが、 \fBcvs\fP をより柔軟に操作できるようになります。 .SP \fBcvs\fP により管理されているソースの集合に分かり易い 名前をつけるために、`\|modules\|' を利用できます。 `\|modules\|' が存在しなければ、開発者は \fBcvs\fP コマンドで ファイルを操作する際に完全なパス名 (絶対パスもしくは \fB$CVSROOT\fP からの相対パス) を指定しなければなりません。 .SP `\|\fBcvs commit\fP\|' が実行される際に常に実行されるプログラムを 定義するために、`\|commitinfo\|' ファイルを利用できます。 これらのプログラムは、修正、追加、削除されたファイルが本当に コミットされる準備ができているかどうかをチェックする「コミット前の」 チェックとして用いられます。 このチェックを、ソースリポジトリの一部 (もしくは全体) から 特定の人やグループを除外するために利用している人もいます。 また、変更されたファイルがそのサイトのコーディング規約に 沿っているかどうかを確かめるためにも利用されるでしょう。 .SP ファイルがリポジトリにチェックインされる時や、リポジトリから チェックアウトされる時に使われるラッパコマンドを .B cvs に登録するために、 `\|cvswrappers\|' ファイルを利用できます。 ラッパは CVS に入ってくる、もしくは CVS から出ていくファイルや ディレクトリを加工することができます。 使い方はいろいろありますが、一例としては、 ファイルがチェックインされる前に C ファイルを整形し、 リポジトリ内の全てのコードの見栄えを揃えるという用法があります。 .SP .BR commit 後に常に実行される、 リポジトリ内の変更に関するログエントリを書き込むプログラムを定義するために、 `\|loginfo\|' ファイルを利用できます。 これらのプログラムは、ファイルにログメッセージを追加したり、 電子メールを通じて開発者のグループにログメッセージを送ったり、 特定のニュースグループにログメッセージを投稿したりするために使われます。 .SP .BR tag 操作や .BR rtag 操作の後で実行されるプログラムを定義するために、 `\|taginfo\|' ファイルを利用できます。 これらのプログラムは、 新しいタグ名とそのタグを作成したプログラマ名の一覧ファイルに メッセージを追加したり、 開発者のグループにメールを送ったり、 特定のニュースグループにメッセージを投稿したりするために使われます。 .SP ログメッセージの書式を定義するために、 `\|rcsinfo\|' ファイルを利用できます。 .SP `\|\fBcvs commit\fP\|' のログエントリを編集・確認する際に実行する プログラムを定義するために、 `\|editinfo\|' ファイルを利用できます。 これは `\|rcsinfo\|' の書式指定と共に用いると非常に便利であり、 変更をコミットするユーザが、書式の適切な欄を埋めていることを チェックすることができます。 .SP \fBupdate\fP の時に無視するデフォルトのファイル一覧を指定するために、 `\|cvsignore\|' ファイルを利用できます。 .SP リポジトリに影響を及ぼす \fBcvs\fP コマンドを記録するために、 `\|history\|' ファイルを利用できます。 このファイルを作成するとヒストリが記録されるようになります。 .SH 関連ファイル .TP .B modules `\|modules\|' ファイルは、あなたがソースコードの集合に付けた名前を記録します。 \fBcvs\fP を使って、正しい書式でファイルを `\|\fB$CVSROOT/CVSROOT/modules,v\fP\|' にチェックインすると、 \fBcvs\fP はこれらの定義を利用するようになります。 .SP `\|modules\|' ファイルは、モジュール定義以外にも、空行やコメント (`\|\fB#\fP\|' から始まる行) を含むことができます。 長い行は、行の最後の文字にバックスラッシュ (``\e'') を置くことで 次の行に続けることができます。 .SP \fIモジュール定義\fP は `\|modules\|' ファイルの単一行で、 2 つの書式があります。どちらにおいても \fImname\fP はモジュール名を 表し、行の残りはその定義になります。 .SP \fImname\fP \fB\-a\fP \fIaliases\fP\|.\|.\|. .br これはモジュール \fImname\fP を定義する最も簡単な方法です。 `\|\fB\-a\fP\|' はこの定義が単なる別名 (alias) であることを示します。 \fBcvs\fP は (コマンドの引数として) \fImname\fP が使われると、 代わりに \fIaliases\fP の名前のリストが指定されたものとして扱います。 \fIaliases\fP には、他のモジュール名もしくはパスを指定します。 \fIaliases\fP にパスを指定すると、 \fBcvs\fP の引数に明示的にパスが指定した場合と同様、 `\|\fBcvs checkout\fP\|' は 作業ディレクトリへの全ての中間ディレクトリを作成します。 .SP .nf \fImname\fP [ \fIoptions\fP ] \fIdir\fP [ \fIfiles\fP\|.\|.\|. ] [ \fB&\fP\fImodule\fP\|.\|.\|. ] .fi .SP もっとも単純な場合、この形式のモジュール定義は `\|\fImname dir\fP\|' となります。 これはディレクトリ \fIdir\fP 内のすべてのファイルをモジュール \fImname\fP として定義します。 \fIdir\fP は (\fB$CVSROOT\fP から、ソースリポジトリ内にある) ソースファイルのディレクトリへの相対パスです。 この場合、\fBcheckout\fP 時には作業ディレクトリとして \fImname\fP という単一のディレクトリのみが作成され、 \fIdir\fP が複数ディレクトリ階層を含むパスであろうと、 中間のディレクトリはデフォルトでは作成されません。 .SP モジュール定義の \fIdir\fP の後で \fIfiles\fP を明示的に指定することで、 \fIdir\fP 内の特定のファイルを選択することができます。 \fBmodules\fP にあるサンプル定義は、あるディレクトリの 単一のファイルから定義されるモジュールの例となっています。 ここでは別の例を示します: .SP .nf .ft B m4test unsupported/gnu/m4 foreach.m4 forloop.m4 .ft P .fi .SP この定義では、`\|\fBcvs checkout m4test\fP\|' を実行すると、 単一階層の作業ディレクトリ `\|m4test\|' が作成され、 \fBcvs\fP ソースリポジトリ内の深い階層のディレクトリにある、 指定された 2 つのファイルが置かれます。 .SP モジュール定義中に `\|\fB&\fP\fImodule\fP\|' と書くことによって、 他のモジュールを参照することができます。 \fBcheckout\fP 時には、作業ディレクトリ内に各 \fImodule\fP 毎の ディレクトリが作成されます。 .br .I \fBcvs\fP 1.3 の新機能; モジュール定義ファイルを古いバージョンの \fBcvs\fP と共有する場合は、 この機能は使わないでください。 .SP そして、モジュール定義に以下の \fIoptions\fP を加えることができます: .SP \&`\|\fB\-d\fP \fIname\fP\|', モジュール名ではなく、他の名前を 作業ディレクトリの名前として用います。 .br .I \fBcvs\fP 1.3 の新機能; モジュール定義ファイルを古いバージョンの \fBcvs\fP と共有する場合は、 この機能は使わないでください。 .SP \&`\|\fB\-i\fP \fIprog\fP\|' を用いると、モジュール内のファイルが コミットされたときに実行されるプログラム \fIprog\fP を指定できます。 \fIprog\fP は、ソースリポジトリ内の影響を受けるディレクトリへの フルパスを単一引数として受け取ります。 \fBコミット\fP 時にプログラムを実行するためには、 `\|commitinfo\|', `\|loginfo\|', `\|editinfo\|' ファイルを使う方法もあります。 .SP `\|\fB\-o\fP \fIprog\fP\|' を用いると、モジュール内のファイルが チェックアウトされたときに実行されるプログラム \fIprog\fP を指定できます。 \fIprog\fP は、モジュール名を単一引数として受け取ります。 .SP `\|\fB\-e\fP \fIprog\fP\|' を用いると、モジュール内のファイルが エクスポート (export) されたときに実行される プログラム \fIprog\fP を指定できます。 \fIprog\fP は、モジュール名を単一引数として受け取ります。 .SP `\|\fB\-t\fP \fIprog\fP\|' を用いると、モジュール内のファイルに タグが付けられたときに実行されるプログラム \fIprog\fP を指定できます。 \fIprog\fP は、 モジュール名と \fBrtag\fP で指定されたシンボリックタグの 2 つを 引数として受け取ります。 .SP `\|\fB\-u\fP \fIprog\fP\|' を用いると、チェックアウトされたモジュールの トップディレクトリにて `\|\fBcvs update\fP\|' が用いられたときに 実行されるプログラム \fIprog\fP を指定できます。 \fIprog\fP は、このモジュールのソースリポジトリへのフルパスを 単一引数として受け取ります。 .TP \&\fBcommitinfo\fP, \fBloginfo\fP, \fBrcsinfo\fP, \fBeditinfo\fP これらのファイルは全て、`\|\fBcvs commit\fP\|' 処理の間の 様々な場面で呼び出されるプログラムを指定します。 これらのファイルは共通の構造を持ちます。 各行は、次の 2 つのフィールドを持ちます: すなわち、 正規表現と、 空白の後にファイル名かコマンド行のテンプレートです。 正規表現の 1 つがリポジトリ内のディレクトリ名にマッチすると、 行の残りが使われます。 行が文字 \fB#\fP で始まっている場合、コメントとして無視されます。 フィールド間の空白も無視されます。 .SP `\|loginfo\|' では、行の残りは実行されるコマンド行の テンプレートとなります。 テンプレートはプログラム名だけでなく、 好きなだけ引数を付けることもできます。 引数リストのどこかに `\|\fB%s\fP\|' を指定すると、 \fBcvs\fP はその場所に \fBコミット\fP により影響を受ける ファイルリストを列挙します。 リストの最初のエントリは、 ソースリポジトリ内の変更が行われる位置への相対パスです。 リストの残りは、この \fBコミット\fP により修正・追加・削除される ファイルとなります。 .SP `\|taginfo\|' では、行の残りは実行されるコマンド行の テンプレートとなります。 コマンドに渡される引数は、順番に .I タグ名 、 .I 操作 (すなわち、 .B add は `tag' を、 .B mov は `tag -F' を、 .B del は `tag -d` をそれぞれ意味します)、 .I リポジトリ となり、残りは全て .B ファイル名 と .B リビジョン の組となります。 フィルタプログラムが 0 以外を返して終了すると、タグ処理は中断されます。 .SP `\|commitinfo\|' では、行の残りは実行されるコマンド行の テンプレートとなります。 テンプレートはプログラム名だけでなく、 好きなだけ引数を付けることもできます。 テンプレートには現在のソースリポジトリへのフルパスが付け加えられ、 コミットにより (追加・削除・修正など) 影響をおよぼされる ファイルのファイル名が続きます。 .SP `\|rcsinfo\|' では、行の残りはログメッセージ用のテンプレートへ 読み込まれるファイルへのフルパスです。 .SP `\|editinfo\|' では、行の残りは実行されるコマンド行の テンプレートとなります。 テンプレートはプログラム名だけでなく、 好きなだけ引数を付けることもできます。 現在のログメッセージ用テンプレートファイルへのフルパスが 最後に追加されます。 .SP 正規表現の代わりに、以下の 2 つのうちどちらかの特殊文字列 を使うことができます: `\|\fBALL\fP\|' では常に実行されるコマンド行テンプレート を指定し、 `\|\fBDEFAULT\fP\|' ではどの正規表現にもマッチしなかったときに 用いられるコマンド行テンプレートを指定します。 .SP `\|commitinfo\|' ファイルには、 他の \fBコミット\fP 操作が行われる \fI前に\fP 実行されるコマンドを指定し、 \fBコミット\fP が行われる前に満たすべき状況をチェックするために 利用できます。 \fBコミット\fP 操作の残りは、このファイルで指定されたコマンド全てが 終了ステータス \fB0\fP で終了したときにのみ続行されます。 .SP `\|rcsinfo\|' ファイルにより、\fBコミット\fP のログ作成の際の \fIログ用テンプレート\fP を指定できます。 このテンプレートの書式を埋めていくだけで、\fBコミット\fP ログを 作成できるようになります。 このファイルでは、正規表現より後のフィールドはコマンドテンプレートではなく、 ログ用テンプレート書式ファイル (複数可) のファイル名となります。 .SP `\|editinfo\|' ファイルにより、\fIコミットが開始する前\fP で ログ情報が記録された後の段階で実行されるスクリプトを指定できます。 これらの「編集」スクリプトは、 ログファイルに記録された情報を確認することができます。 編集スクリプトが 0 以外の終了ステータスを返した場合、コミットは中断されます。 .SP `\|loginfo\|' ファイルにより、コミットの \fI最終段階\fP で実行される コマンドを指定できます。 コミットログメッセージとして指定されたテキストはコマンドにパイプされます: よくある用法としては、メールを送る、ニュースグループの記事とする、 中央ファイルに追加書き込みするというものがあります。 .TP \&\fBcvsignore\fP, \fB.cvsignore\fP `\|\fBcvs update\fP\|' 中に無視されるデフォルトのファイル (もしくは .BR sh ( 1 ) のファイル名パターン) のリストです。 まず最初に、\fBcvs\fP はコンパイル時に組み込まれたデフォルトの ファイル名パターンのリストを読み込みます ( .BR cvs ( 1 ) を参照)。 その後、\fB$CVSROOT/CVSROOT/cvsignore\fP ファイルが存在すれば、 その中のリポジトリ毎のリストを読み込みます。 そして、`\|$HOME/.cvsignore\|' にあるユーザ毎のリストを読み込みます。 最後に、\fBcvs\fP はディレクトリを辿る時に ディレクトリ中に `\|.cvsignore\|' ファイルがあれば、それを読み込みます。 これらのディレクトリ毎のファイルは、それを含むディレクトリにのみ 有効で、サブディレクトリには作用しません。 .TP .B history ヒストリを記録するには \fB$CVSROOT/CVSROOT\fP にこのファイルを作成します (詳細は `\|\fBcvs history\fP\|' の記述を参照)。 .SH 関連項目 .BR cvs ( 1 ), -.SH 著作権 +.SH COPYING Copyright \(co 1992 Cygnus Support, Brian Berliner, and Jeff Polk .PP Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. .PP Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. .PP Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. diff --git a/ja/man/man8/amd.8 b/ja/man/man8/amd.8 index b209778df2..c6a4365ab6 100644 --- a/ja/man/man8/amd.8 +++ b/ja/man/man8/amd.8 @@ -1,332 +1,332 @@ .\" .\" Copyright (c) 1997-1998 Erez Zadok .\" Copyright (c) 1989 Jan-Simon Pendry .\" Copyright (c) 1989 Imperial College of Science, Technology & Medicine .\" Copyright (c) 1989 The Regents of the University of California. .\" All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Jan-Simon Pendry at Imperial College, London. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgment: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" %W% (Berkeley) %G% .\" .\" %Id: amd.8,v 1.3 1998/09/12 04:04:57 obrien Exp % .\" .\" jpman %Id: amd.8,v 1.2 1997/04/15 00:24:08 mutoh Stab % .\" .Dd April 19, 1994 .Dt AMD 8 .Os .Sh 名称 .Nm amd .Nd 自動マウントファイルシステム .Sh 書式 .Nm amd .Op Fl F Ar conf_file .Nm amd .Op Fl nprvHS .Op Fl a Ar mount_point .Op Fl c Ar duration .Op Fl d Ar domain .Bk -words .Op Fl k Ar kernel-arch .Ek .Op Fl l Ar logfile .Op Fl o Ar op_sys_ver .Op Fl t Ar interval.interval .Bk -words .Op Fl w Ar interval .Ek .Op Fl x Ar log-option .Op Fl y Ar YP-domain .Bk -words .Op Fl C Ar cluster-name .Ek .Op Fl D Ar option .Op Fl F Ar conf_file .Op Fl O Ar op_sys_name .Op Fl T Ar tag .Oo .Ar directory mapname .Op Fl map-options .Oc .Ar ... .Sh 解説 .Nm は、ファイルシステムがアクセスされたときに自動的にそのファイルシステムを マウントするデーモンです。マウントされたファイルシステムは、アクセスがな ければ自動的にアンマウントされます。 .Pp .Nm は、自分自身をNFSサーバとして、指定された .Ar directory に結び付けます。 その指定ディレクトリ内でのファイルアクセスは .Nm によって処理されます。 .Nm は、 .Ar mapname で定義されたマップを使って、あるディレクトリ にどのファイルシステムを割り当てるかを決定します。 一般に .Ar mapname は、ホスト名やファイルシステムの情報、 マウントオプションから構成されます。 .Pp 前述の最初の形式では、 .Nm は短いヘルプ文字列を表示します。 第 2 の形式では、オプションを指定しないか、 .Fl F が使用されると、 .Nm は設定パラメータをファイル .Ar conf_file から読み込みます。設定ファイルのデフォルトは .Pa /etc/amd.conf です。 最後の形式についてはここから記述します。 .Sh オプション .Bl -tag -width Ds .It Fl a Ar temporary-directory 実際にファイルシステムをマウントする位置を指定します。 デフォルトは .Pa /a です。 .It Fl c Ar duration ディレクトリが使われないときに、探索に使われた名前をキャッシュ して保持する秒数を指定します。デフォルトは5分です。 .It Fl d Ar domain ローカルドメイン名を指定します。もしこのオプションが与 えられなければ、ドメイン名はホスト名から決定されます。 .It Fl k Ar kernel-arch カーネルアーキテクチャを指定します。これは単に ${karch} セレクタ を指定するだけです。 .It Fl l Ar logfile マウントおよびアンマウントのイベントを記録するログファイル を指定します。 もし、 .Ar logfile が ``syslog'' という文字列なら、ログメッセージは .Xr syslog 3 によってシステムログデーモンに送られます。 デフォルトの syslog ファシリティは LOG_DAEMON です。 変更したい場合は、ログファイル名の後にコロンで区切って、 その名前を付けてください。 例えば、 .Ar logfile が文字列 .Nm syslog:local7 である場合、 .Nm は、 .Xr syslog 3 の LOG_LOCAL7 ファシリティを使用してログを取ります (ただしシステムに本ファイシリティが存在する場合)。 .It Fl n ホスト名を正規化します。${rhost}で参照される名前は、使わ れる前にホストデータベースに関連づけて正規化されます。 これは、エイリアスを `` 公式 (official)'' ホスト名に変換する効果があります。 .It Fl o Ar op_sys_ver 組み込まれているオペレーティングシステムバージョン番号を上書きします。 後方互換性のために、 組み込みのバージョン番号が望ましくない場合に有用です。 例えば、組み込みのバージョン番号が .Dq 2.5.1 の場合、 .Dq 5.5.1 で上書きして、後者を意識して書いた古いマップを使用することができます。 .It Fl p プロセスIDを表示します。 .Nm のプロセス ID を標準出力に出力して、ファイルに保存することができます。 .It Fl r 存在するマウントをリスタートします。 .Nm はマウントファイルテーブルをスキャンして、 現在マウントされているファイルシステムを判断します。 ファイルシステムが自動マウントされたものであれば、 .Nm は、その情報を継承します。 .It Fl t Ar interval.interval NFS/RPC/UDPのリトライの間隔を、10分の1秒単位で指定します。 デフォルト値は0.8秒です。2番目の値は再送カウンタを変更します。 どちらか一方か、両方の値が設定されていなければ、 適当なデフォルト値が設定されます。 .It Fl v バージョンを表示します。標準エラー出力に設定情報を表示します。 .It Fl w Ar interval キャッシュする時間を超えたファイルシステムのマウントを解除する時間を 秒単位で指定します。デフォルト値は2分です。 .It Fl x Ar options 実行時に何をログに記録するかを指定します。 .Ar options には次のものをコンマで区切って使用できます: fatal, error, user, warn, info, map, stats, all。 .It Fl y Ar domain NISマップをとってくる際に用いるNISドメインを指定します。 デフォルトはシステムのドメイン名です。このオプションは、NIS を動かしていないときには無視されます。 .It Fl C Ar cluster-name 代わりの HP-UX クラスタ名を指定します。 .It Fl D Ar option デバッグオプションの種類を選択することができます。 .Ar option の頭に .Ar no をつけると、そのオプションの逆の影響を与えます。 オプションは並べて指定することができます。もっとも役に立つのは .Ar all です。 .Pp .Fl D はデバッグのときにだけ使うものであるため、ここでは他のオプションに ついては説明しません。サポートされているオプションは .Fl v オプションで表示されますが、詳細はソースコードに記述されています。 .It Fl F Ar conf_file 使用する .Nm 設定ファイルを指定します。 ファイル形式については .Xr amd.conf 5 を参照してください。 この設定ファイルの用途は、 コマンドラインにて多くのオプションをタイプする代りに、 これらのオプションを指定することです。 .Nm amd.conf ファイルは、 amd が持つすべてのコマンドラインオプションに対するディレクティブと、 設定ファイルによってのみ利用可能な多くの設定を含みます。 本オプションで指定された設定ファイルは、 他のオプションすべてが処理された後で処理されます。 本オプションがコマンドラインのどこに置かれていたかは無関係です。 .It Fl H ヘルプと使用方法の文字列を表示します。 .It Fl O Ar op_sys_name 組み込まれているオペレーティングシステム名を上書きします。 後方互換性のために、 組み込みの名前が望ましくない場合に有用です。 例えば、組み込みの名前が .Dq sunos5 の場合、 .Dq sos5 で上書きして、後者を意識して書いた古いマップを使用することができます。 .It Fl S .Nm の走行中の実行可能ページをメモリにロックしません。 .Nm の性能向上のために、 .Xr plock 3 コールをサポートするシステムでは .Nm プロセスをメモリにロック可能です。 この場合、オペレーティングシステムが必要に応じて .Nm プロセスをスケジュールしたり、ページアウトしたり、スワップする 機会が減ります。 .Nm の性能は向上する傾向がありますが、 .Nm プロセスが使用するメモリを .Pq 他のプロセスが使えないようにして 予約してしまうというコストとなります。 この動作が望ましくない場合、 .Fl S を使用します。 .It Fl T Ar tag .Xr amd.conf 5 が使用するタグを指定します。 タグが付いている全マップエントリが処理されます。 タグが付いていないマップエントリは常に処理されます。 .Ar tag 以外のタグが付いているマップエントリは処理されません。 .Sh 関連ファイル .Bl -tag -width /axx .It Pa /a 動的にファイルシステムがマウントされるディレクトリ .It Pa /etc/amd.conf デフォルトの設定ファイル .El .Pp .Sh 注意 マウントマップを作成する場合には注意が必要です。 .Pp .Tn NFS ファイルシステム上のシンボリックリンクは、信じられないほど 非効率的です。 .Tn NFS を実装した多くのシステムでは、 シンボリックリンクの展開結果はカーネルがキャッシュせずに、 .Em lookuppn (パス名変換)時にシンボリックリンクに出会うたびに NFSサーバに対してRPCコールを行うようになっています。 キャッシュをどこかに加えることによって、かなり大きな性能の向上が 得られるはずです。 上手に実現したオートマウントシステムで .Xr symlink 2 を置き換えれば大きくスピードアップすることができますが、 同時に多くのコンテキストスイッチも起こします。 .Pp .Nm のすべての機能を駆使できれば非常に便利ですが、 それにはかなりの想像力が必要になります。 .Pp .Sh 関連項目 .Xr domainname 1 , .Xr hostname 1 , .Xr syslog 3 , .Xr amd.conf 5 , .Xr mtab 5 , .Xr amq 8 , .Xr automount 8 , .Xr mount 8 , .Xr umount 8 .Rs .%T Amd \- The 4.4 BSD Automounter. .Re .Pp .Sh 作者 .An Jan-Simon Pendry Aq jsp@doc.ic.ac.uk , Department of Computing, Imperial College, London, UK. .Pp .An Erez Zadok Aq ezk@cs.columbia.edu , Department of Computer Science, Columbia University, New York, USA. .Pp -.An am-utik の、他の作者および貢献者は、 +.An am-utils の、他の作者および貢献者は、 am-utils とともに配布されている .Nm AUTHORS ファイルに記述されています。 .Sh 歴史 .Nm amd は 4.4BSD にはじめて導入されました。 diff --git a/ja/man/man8/amq.8 b/ja/man/man8/amq.8 index 38808096cf..4b05ee95f6 100644 --- a/ja/man/man8/amq.8 +++ b/ja/man/man8/amq.8 @@ -1,226 +1,226 @@ .\" .\" Copyright (c) 1997-1998 Erez Zadok .\" Copyright (c) 1990 Jan-Simon Pendry .\" Copyright (c) 1990 Imperial College of Science, Technology & Medicine .\" Copyright (c) 1990 The Regents of the University of California. .\" All rights reserved. .\" Copyright (c) 1990, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Jan-Simon Pendry at Imperial College, London. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgment: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" %W% (Berkeley) %G% .\" .\" %Id: amq.8,v 1.3 1998/09/12 04:04:57 obrien Exp % .\" .\" jpman %Id: amq.8,v 1.3 1997/08/11 14:26:54 horikawa Stab % .\" .Dd March 16, 1991 .Dt AMQ 8 .Os .Sh 名称 .Nm amq .Nd 自動マウントシステムへの問い合わせツール .Sh 書式 .Nm amq .Op Fl fmpsuvTU .Op Fl h Ar hostname .Op Fl l Ar log_file .Op Fl x Ar log_options .Op Fl D Ar debug_options .Op Fl M Ar mountmap_entry .Op Fl P Ar program_number .Op Ar directory ... .Pp .Sh 解説 .Nm amq は、現在の .Xr amd 8 の動作状況を知るための簡単な手段を提供します。 .Nm amd との通信は .Tn RPC によって行われます。現在のプロトコルでは、 3 つのモード がサポートされています。デフォルトでは、マウントポイントと自動 マウントされたファイルシステムのリストが出力されます。 別のホストの状態を知るときは、 .Fl h オプションで .Ar hostname を指定します。 .Pp ディレクトリ名が与えられると、デフォルトの出力ではファイルシステム ごとの情報が表示されます。 .Sh オプション .Bl -tag -width flag .It Fl f 自動マウントシステムに内部キャッシュを破棄するように要求します。 .It Fl h Ar hostname .Ar hostname で指定されたホストに問い合わせを行います。デ フォルトでは、ローカルホストが使われます。 .Tn HP-UX クラスタでは、デフォルトでルートサーバに問い合わせが行わ れます。これは通常、自動マウントシステムがルートサーバで動 いているからです。 .It Fl l Ar log_file .Nm amd に対し、 .Ar log_file をログファイル名として使用するように指示します。 セキュリティのために、これは .Nm amd が起動したときと同じログファイルである必要があります。 それゆえ本オプションが有効なのは、 日々の cron ジョブによってログファイルがローテートおよび圧縮するために、 .Nm amd のファイルハンドルをリフレッシュするときに限られます。 .It Fl m マウントされたファイルシステムのリストを、 各ファイルシステムへの参照回数と マウント時に起きたエラーを含めて表示するように、自動マウント システムに要求します。 .It Fl p リモートもしくはローカルに実行されている .Nm amd のプロセス ID を返します。 ローカルの .Nm amd プロセスにシグナルを送る必要があるときに便利であり、 プロセステーブルを探さなくて済みます。 本オプションは .Pa ctl-amd スクリプトの中で使用されています。 .It Fl s 自動マウントシステムに、システムの統計情報を表示するように要求します。 .It Fl u 情報を表示する代わりに、 指定したファイルシステムをアンマウントするよう 自動マウントシステムに要求します。この要求によって、 必ずアンマウントが実行されるわけではありません。 単にそのファイルシステムのマウントが、 タイムアウトするにすぎません。 タイムアウトは .Nm amd のメインスケジューラに検出され、結果として 普通にタイムアウトしたときと同じことが行われます。 .It Fl v 自動マウントシステムに、バージョン情報を提供するように要求します。これは、 .Nm amd の .Fl v オプションで得られる情報の一部です。 .It Fl x Ar log_options 自動マウンタに対し、 .Ar log_options に指定されたロギングオプションを今から使用するように指示します。 .It Fl D Ar log_options 自動マウンタに対し、 .Ar debug_options に指定されたデバッギングオプションを今から使用するように指示します。 .It Fl M Ar mountmap_entry マウントマップエントリを .Nm amd に渡し、評価されるまで待ちます。これによりマウントが発生する可能性があります。 本オプションはセキュリティ面で非常に危険です。 デフォルトでは、 .Nm amd と .Nm amq は本オプションをサポートしていません。 本オプションを有効にするためには、 .Nm am-utils を .Ar --enable-amq-mount 付きで構築する必要があります。 .It Fl P Ar program_number 別の RPC プログラム番号 .Ar program_number で登録している .Nm amd に接続し、その自動マウンタのインスタンスに対して他のすべての操作を適用します。 複数コピーの .Nm amd を実行していて、それぞれを別個に管理する必要があるときに有用です。 指定しない場合には、 .Nm amq は .Nm amd のデフォルトのプログラム番号 300019 を使用します。 セキュリティのため、 .Nm amd が使用可能な別のプログラム番号は 300019 から 300029 まで (両端含む) に限定されています。 .It Fl T .Nm amd に対して TCP でのみ通信しようとします。 通常 .Nm amq は TCP を使用しようとし、失敗すると UDP を使用しようとします。 .It Fl U .Nm amd に対して UDP (コネクションレス) でのみ通信しようとします。 通常 .Nm amq は TCP を使用しようとし、失敗すると UDP を使用しようとします。 .El .Sh 関連ファイル .Bl -tag -width amq.x .It Pa amq.x RPCのプロトコル記述 .El .Sh 警告 .Nm amq は、Sunが登録しているRPCプログラム番号(十進数で300019)を使っています。 これは通常、 .Pa /etc/rpc には含まれていません。 .Pp .Sh 関連項目 .Xr amd.conf 5 , .Xr amd 8 , .Xr ctl-amd 8 .Xr amd 8 .Sh 作者 .An Jan-Simon Pendry Aq jsp@doc.ic.ac.uk , Department of Computing, Imperial College, London, UK. .Pp .An Erez Zadok Aq ezk@cs.columbia.edu , Department of Computer Science, Columbia University, New York, USA. .Pp -.An am-utik の、他の作者および貢献者は、 +.An am-utils の、他の作者および貢献者は、 am-utils とともに配布されている .Nm AUTHORS ファイルに記述されています。 .Sh 歴史 .Nm amq は、はじめに 4.4BSD で導入されました。 diff --git a/ja_JP.eucJP/man/man1/awk.1 b/ja_JP.eucJP/man/man1/awk.1 index e441aa54d7..8f0d0ed04a 100644 --- a/ja_JP.eucJP/man/man1/awk.1 +++ b/ja_JP.eucJP/man/man1/awk.1 @@ -1,2534 +1,2534 @@ .\" jpman %Id: awk.1,v 1.3 1997/04/17 13:23:21 horikawa Stab % .\" WORD: interval exptession インターバル表現 .ds PX \s-1POSIX\s+1 .ds UX \s-1UNIX\s+1 .ds AN \s-1ANSI\s+1 .TH GAWK 1 "Dec 19 1996" "Free Software Foundation" "Utility Commands" .SH 名称 gawk \- パターン検索・処理言語 .SH 書式 .B awk [ POSIX or GNU style options ] .B \-f .I program-file [ .B \-\^\- ] file .\^.\^. .br .B gawk [ POSIX or GNU style options ] [ .B \-\^\- ] .I program-text file .\^.\^. .SH 解説 .I gawk は GNU プロジェクトが実装した プログラミング言語 AWK の処理系です。 本処理系は \*(PX 1003.2 コマンド言語とユーティリティ規約に定められた 言語の定義に適合しています。 本バージョンはまた、Aho, Kernighan, Weinberger の著書『 .I The AWK Programming Language 』の記述にもとづいており、 System V Release 4 \*(UX の .I awk の付加機能も含んでいます。 .I gawk はまた、Bell Labs の新機能および GNU 独自の拡張も提供します。 .PP コマンドラインは、 .I gawk へのオプション、(もし .B \-f または .B \-\^\-file オプションにより指定されていなければ)AWK のプログラムテキスト、そして 残りの引数列からなります。 この残りの引数列は、定義済み AWK 変数 .BR ARGC , .B ARGV を用いることで参照できます。 .SH オプションフォーマット .PP .I gawk へのオプションは、伝統的な \*(PX 形式の 1 文字オプションと、GNU 形式の ロングオプションがあります。 \*(PX 形式のオプションは単一の ``\-'' で始まり、一方 GNU 形式のもの は ``\-\^\-'' で始まります。ロングオプションは GNU の独自仕様と \*(PX の必須仕様の両方について用意されています。 .PP \*(PX 標準に従い、 .I gawk 独自仕様のオプションは .B \-W オプションへの引数で与えます。 複数の .B \-W オプションを指定することもできます。 後述の ように、各 .B \-W オプションには、それに対応するロングオプション が存在します。ロングオプションへの引数は、空白を入れずに .B = でつないで指定するか、その次のコマンドライン引数として渡すことができます。 ロングオプションは、短縮形が一意である限り、短縮することができます。 .SH オプショオン .I gawk は以下のオプションを受け付けます。 .TP .PD 0 .BI \-F " fs" .TP .PD .BI \-\^\-field-separator " fs" 入力フィールドセパレータ(変数 .B FS の値)を .I fs とします。 .TP .PD 0 \fB\-v\fI var\fB\^=\^\fIval\fR .TP .PD \fB\-\^\-assign \fIvar\fB\^=\^\fIval\fR プログラムを実行する前に、変数 .I var に値 .I val を設定します。このようにして設定 した変数は、 AWK プログラムの .B BEGIN ブロック内でも参照できます。 .TP .PD 0 .BI \-f " program-file" .TP .PD .BI \-\^\-file " program-file" .B awk への第 1 引数を用いるかわりに、AWK プログラムをファイル .I program-file から読み込みます。 .B \-f (または .B \-\^\-file ) オプションは複数回使 用することができます。 .TP .PD 0 .BI \-mf " NNN" .TP .PD .BI \-mr " NNN" さまざまなメモリの制限値を .I NNN に設定します。フラグ .B f は最大フィールド数、フラグ .B r は最大レコードサイズを設定します。この 2 つのフラグと .B \-m オプションは、Bell Labs バージョンの \*(UX .I awk に由来しています。しかし、 .I gawk にはこのような制限はありませんので、 .I gawk では本オプションは無視されます。 .TP .PD 0 .B "-W traditional" .TP .PD 0 .B "\-W compat" .TP .PD 0 .B \-\^\-traditional .TP .PD .B \-\^\-compat .I 互換 モードで動作します。互換モードでは、 .I gawk は \*(UX .I awk と等価な動作を行い、GNU 独自拡張は解釈できません。 このオプションの他の形式よりも、 .B \-\^\-traditional を使用することが好まれます。 詳しくは後述の .B "GNU 拡張" を参照してください。 .TP .PD 0 .B "\-W copyleft" .TP .PD 0 .B "\-W copyright" .TP .PD 0 .B \-\^\-copyleft .TP .PD .B \-\^\-copyright GNU の著作権表示の短いバージョンを標準出力へ書き出し、 成功状態で終了します。 .TP .PD 0 .B "\-W help" .TP .PD 0 .B "\-W usage" .TP .PD 0 .B \-\^\-help .TP .PD .B \-\^\-usage 短めのオプション一覧を標準出力へ書き出します。 (GNU コーディング規約に 従い、本オプションを指定すると .I awk はただちに終了し、成功を意味する終了ステータスを返します。) .TP .PD .B "\-W lint" .TP .PD 0 .B \-\^\-lint 他の AWK での処理が疑わしい、あるいは他の AWK との互換性がない構造が ある場合に警告を行います。 .TP .PD 0 .B "\-W lint\-old" .TP .PD .B \-\^\-lint\-old オリジナルの Unix .I awk へ移植できない構造に関して警告を行います。 .ig .\" This option is left undocumented, on purpose. .TP .PD 0 .B "\-W nostalgia" .TP .PD .B \-\^\-nostalgia 長い間 .I awk を使ってきたユーザのために郷愁の瞬間を提供します。 .. .TP .PD 0 .B "\-W posix" .TP .PD .B \-\^\-posix .I 互換 モードをオンにし、更に以下の制約が課せられます。 .RS .TP \w'\(bu'u+1n \(bu .B \ex エスケープシーケンスを解釈しません。 .TP \(bu .B FS が単一の空白に設定された場合、空白とタブのみがフィールドを区切り、 改行はフィールドを区切りません。 .TP \(bu キーワード .B function に対応する別名 .B func を解釈しません。 .TP \(bu 演算子 .B ^ や .B ^= のかわりに .B ** や .B **= を用いることができません。 .TP \(bu .B fflush() 関数は利用できません。 .RE .TP .PD 0 .B "\-W re\-interval" .TP .PD .B \-\^\-re\-interval 正規表現のマッチングで .I "インターバル表現 (interval expressions)" を有効にします (後述の .BR "正規表現" を参照してください)。 インターバル表現は伝統的な AWK 言語では利用できませんでした。 .I awk と .I egrep が一貫性を持つように、POSIX 標準がこれらを追加しました。 しかし、これらを使用すると古い AWK プログラムを動かなくしてしまうでしょうから、 このオプションによって要求されたときと、 .B \-\^\-posix が指定されたときに、 .I gawk はこれらの機能を提供します。 .TP .PD 0 .BI "\-W source " program-text .TP .PD .BI \-\^\-source " program-text" .I program-text を AWK プログラムとして用います。本オプションにより、ライブラリ化された関数( .B \-f または .B \-\^\-file オプションを用いて読み込む)とコマンドラインから入力されたプログラムを 簡単に合成することができます。 これは、主にシェルスクリプトで用いられる中規模から大規模な AWK プログラム のために用意されました。 .TP .PD 0 .B "\-W version" .TP .PD .B \-\^\-version 実行された .I gawk プログラムのバージョン情報を標準出力へ書き出します。これは主に、 あなたが使用している .I gawk プログラムが Free Software Foundation が配布してい るプログラムのうち、最新のものであるかどうかを知る場合に便利です。 またバグレポートのときにも有用です。 (本オプションを指定すると、GNU コーディング規約に従い、 .I awk はただちに終了し、成功を意味する終了ステータスを返します。) .TP .B \-\^\- オプションの終了を意味します。AWK プログラムに ``\-'' から始まるオプションではない 引数を与える場合に便利です。 これは、主に他の \*(PX プログラムの多くが引数に対して行う解釈と 一貫性を保つためにあります。 .PP 互換モードでは、他のオプションは不正であるとされるか、無視されます。 通常の実行において、プログラムテキストがコマンドラインに指定されていれば、 不明なオプションは、AWK プログラムに .B ARGV 配列を通して渡されます。これ は、AWK プログラムを ``#!'' 機構を用いて実行する場合に特に便利です。 .SH AWK プログラムの実行 .PP AWK プログラムは、パターンとアクションの組の列と、(もし必要なら)関数定義か らなります。 .RS .PP \fIpattern\fB { \fIaction statements\fB }\fR .br \fBfunction \fIname\fB(\fIparameter list\fB) { \fIstatements\fB }\fR .RE .PP .I gawk はまず、 .I program-file (複数可)が指定されていればそれから、 .B \-\^\-source の引数から、あるいは、最初のオプションではない引数から プログラムを読み込みます。 .B \-f と .B \-\^\-source オプションは、コマンドラインで複数回指定できます。 .I gawk は、すべての .I program-file とコマンドラインで指定したプログラムを結 合して使用します。新しく作った AWK プログラムひとつひとつに AWK 関数のライブラリを埋め込む必要が無いので、この機能はライブラリの構築に 便利です。 また、ライブラリ関数とコマンドラインで指定したプログラムとを混合して使 うことも可能にしています。 .PP 環境変数 .B AWKPATH により、 .B \-f オプションで指定されたファイルを検索するパスを指定できます。 .B AWKPATH が設定されていない場合のデフォルトパスは \fB".:/usr/local/share/awk"\fR です。 (実際のディレクトリは .I gawk がどのように構築/インストールされたかに依存して、さまざまなものとなります。) .B \-f オプションで指定したファイル名が ``/'' を含んでいる場合は、 パス検索は行われません。 .PP .I gawk は、 AWK プログラムを次の順序で実行します。 まず、 .B \-v オプションで指定された変数への代入をすべて行います。 次に、プログラムを内部形式にコンパイルします。 そして、(もし存在すれば) .B BEGIN ブロック(複数存在可)を実行します。 配列 .B ARGV で指定されたファイルを順に読み、処理を行います(コマンドラインでファイル名が 指定されていなければ、標準入力に対して処理を行います)。 .PP コマンドラインで指定されたファイル名が .IB var = val という形式ならば、それ は変数への代入であると解釈されます。変数 .I var は値 .I val に設定されます (これは、すべての .B BEGIN ブロックを実行したあとに行われます)。コマンドライン での変数の代入は、AWK が入力をフィールドやレコードに分割するためのセパレータ を実行時に変更するのに便利です。また、1 つのデータファイルに 対し数回処理を行う必要がある場合、状態をコントロールするのにも便利です。 .PP 配列 .B ARGV の要素に空(\fB""\fR)がある場合、 .I gawk はその要素を無視します。 .PP .I gawk は、入力された各レコードに対してマッチする .I パターン が AWK プログラム内にあるかどうかを 検索します。そのレコードにマッチしたパターンすべてについて、それぞれ対応する .I アクション が実行されます。 パターンは、プログラムテキストに出現した順序で検索されます。 .PP 入力が尽きると、 .I gawk は(もしあれば) .B END ブロック(複数存在可)を実行します。 .SH 変数、レコード、フィールド AWK における変数は動的、すなわち、最初に使用されたときに生成されます。 変数の値は、浮動小数点数か、文字列か、あるいは両方です。変数の用い られ方により変化します。AWK ではまた、1次元配列を利用することができます。 多次元配列 も、擬似的にではありますが、利用可能です。プログラム実行開始時に、 いくつかの定義済み変数が設定されます。 これらを必要に応じて説明し、以下でまとめます。 .SS レコード 通常、レコードは改行文字により区切られます。 レコードの区切りは、組み込み変数 .B RS へ値を代入することにより、制御できます。 .B RS が単一文字の場合、その文字がレコードを区切ります。 そうでない場合は、 .B RS は正規表現となります。 入力中のテキストで、この正規表現にマッチするものがレコードを区切ります。 しかし互換モードでは、 文字列値の最初の文字だけが、レコードセパレータに使用されます。 .B RS が空文字列に設定されているときには、レコードは空行で区切られます。 .B RS が空文字列に設定されたときには、 .B FS の値にかかわらず、改行文字は常にフィールドセパレータとなります。 .SS フィールド .PP 入力レコードを読み込むごとに、 .I gawk はそのレコードを .I フィールド に分割しま す。分割する際には、変数 .B FS の値がフィールドセパレータとして参照されます。 .B FS の値が1文字なら、その 文字を境にフィールドが分割されます。 .B FS が空文字列の場合、個々の文字がフィールドセパレータとなります。 いずれでもない場合、 .B FS は完全な正規表現である と解釈されます。特殊な場合として .B FS が単一の空白のときには、フィールドは 連続した空白・タブ・改行により分割されます。 (後述の .BR \-\-posix の議論を参照してください)。 変数 .B IGNORECASE (下記参照)の 値は、 .B FS が正規表現の場合フィールド分割にも影響を与えることと、 .B RS が正規表現の場合レコード分割にも影響を与えることに注意してください。 .PP 変数 .B FIELDWIDTHS の値が空白で区切られた数字の列である場合、各フィールドは 固定長であると解釈され、 .I gawk は指定された幅ごとにフィールドの 分割を行います。この場合、 .B FS の値は無視されます。 .B FS に新たに値を設定 することにより、この .B FIELDWIDTHS の効果を打ち消し、標準の動作に戻すことができます。 .PP 入力レコード中の各フィールドの値は、左から .BR $1 , .B $2 等という名前で参照できます。 .B $0 は レコード全体です。フィールドに値を代入することもできます。フィールドは定数だ けでなく、変数によって参照することもできます。以下の例では、入力レコードの 5 番目のフィールドの値を出力します。 .RS .PP .ft B n = 5 .br print $n .ft R .RE .PP 変数 NF は、自動的に入力レコードのフィールドの数に設定されます。 .PP 存在しないフィールド(すなわち、 .B $NF より右のフィールド)を参照した結果は 空文字列になります。しかしながら、存在しないフィールドへの代入(たとえ ば、 .BR $(NF+2) = 5 )は .B NF の値を増加させ、間のフィールドには空文字が設定されます。 さらに .B $0 の値は、フィールドの値を変数 .B OFS の値でフィールドを区切ったものとして再計算されます。 負のフィールド番号への参照は致命的エラーとなります。 .B NF を減少させると、新しい値を越えるフィールドの値は失われます。 .B $0 の値は、フィールドの値を変数 .B OFS の値でフィールドを区切ったものとして再計算されます。 .SS 組み込み変数 .PP .I gawk の組み込み変数は以下のとおりです。 .PP .TP \w'\fBFIELDWIDTHS\fR'u+1n .B ARGC コマンドライン引数の個数( .I gawk へのオプションと、プログラム指定は含みま せん)。 .TP .B ARGIND 現在処理中のファイル名が格納されている配列 .B ARGV のインデックス。 .TP .B ARGV コマンドライン引数の配列。配列は、 0 から .B ARGC \- 1 までのインデックスを 持ちます。 .B ARGV の内容を変更することで、入力に用いるファイル名を変 更することができます。 .TP .B CONVFMT 数値の変換フォーマット。デフォルト値は \fB"%.6g"\fR です。 .TP .B ENVIRON 現在の環境変数の値からなる配列。配列は、環境変数名によりインデックスされ 、各要素の値はその環境変数の値です(例えば \fBENVIRON["HOME"]\fP は .B /home/arnold となるでしょう)。本配列に 代入を行っても、 .I gawk からリダイレクトや .B system() 関数により実行される プログラムの環境には影響を与えません(これは、将来の .I gawk では変更される可能性があります)。 .\" but don't hold your breath... .TP .B ERRNO .B getline のリダイレクト、 .B getline による読み込み、 .B close() 関数の実行時のいずれかにシステムエラーが発生した場合、変数 .B ERRNO にはエラーの内容を示した文字列が設定されます。 .TP .B FIELDWIDTHS 空白で区切られたフィールド長のリスト。もしこの値が設定されていれば、 .I gawk は .B FS の値を用いてフィールド分割するかわりに、固定長のフィールド分割を行 います。固定長のフィールド分割機能はまだ実験的なもので、 .I gawk が改良されるに従って意味が変化する可能性があります。 .TP .B FILENAME 現在の入力ファイル名。もし、コマンドラインで入力ファイルが指定されてい なければ、 .B FILENAME の値は ``\-'' です。しかしながら、 .B BEGIN ブロック内では .B FILENAME は未定義です。 .TP .B FNR 現在の入力ファイルにおける入力レコード番号。 .TP .B FS 入力フィールドセパレータ。デフォルトでは単一の空白です。 上述の .B フィールド を参照してください。 .TP .B IGNORECASE すべての正規表現と文字列操作において大文字小文字の区別を制御します。もし、 .B IGNORECASE が 0 でない値に設定されていれば、文字列比較、ルールのパターンマッチ、 .B FS によるフィールド分割、 .B RS によるレコード分割、 .B ~ と .B !~ による正規表現マッチ、定義済み関数 .BR gensub() , .BR gsub() , .BR index() , .BR match() , .BR split() , .B sub() において大文字と小文字の違いは無視されます。このため、 .B IGNORECASE が 0 以外の値なら、 .B /aB/ は \fB"ab"\fP, \fB"aB"\fP, \fB"Ab"\fP, \fB"AB"\fP のいずれにもマッチすることになります。 他のAWK 変数と同様に .B IGNORECASE の初期値は 0 なので、通常は 正規表現と文字列操作において大文字と小文字は区別されます。 Unix では、大文字小文字を無視する場合、 ISO 8859-1 Latin-1 文字集合全てを使用できます。 .B 注: 3.0 以前の .I gawk では .B IGNORECASE は正規表現操作のみに影響しました。現在は文字列比較にも影響します。 .TP .B NF 現在の入力レコードのフィールド数。 .TP .B NR 現在までに読み込んだ入力レコード数の合計。 .TP .B OFMT 数字の出力フォーマット。デフォルト値は \fB"%.6g"\fR です。 .TP .B OFS 出力フィールドセパレータ。デフォルトは空白です。 .TP .B ORS 出力レコードセパレータ。デフォルトは改行です。 .TP .B RS 入力レコードセパレータ。デフォルトは改行です。 .TP .B RT レコードターミネータ。 .I gawk は、 .B RS で指定される文字または正規表現にマッチする入力テキストを、 .B RT に設定します。 .TP .B RSTART .B match() によりマッチした最初の文字の位置。0 はマッチしなかったことを示します。 .TP .B RLENGTH .B match() によりマッチした文字列の長さ。\-1 はマッチしなかったことを示します。 .TP .B SUBSEP 多次元配列を実現する際に用いられる、配列のインデックスを結合する文字。 デフォルト値は \fB"\e034"\fR です。 .SS 配列 .PP 配列は、ブラケット .RB ( [ と .BR ] ) の間の式によってインデックスを指定します。もし式が式 のリスト(式, 式, ...) なら、式の値を変数 .B SUBSEP の値を区切りとして 結合した文字列をインデックスとして用います。これにより、多次元配列を シミュレートしています。例えば、 .PP .RS .ft B i = "A";\^ j = "B";\^ k = "C" .br x[i, j, k] = "hello, world\en" .ft R .RE .PP は、文字列 \fB"hello, world\en"\fR を、文字列 \fB"A\e034B\e034C"\fR で インデックスした配列 x の要素に代入しています。 AWK の配列はすべて、文字列によりインデックスを行う連想配列です。 .PP 特殊な演算子 .B in を .B if または .B while ステートメントで用いることによって、あるインデックス値に おける配列の値が定義されているかを調べることができます。 .PP .RS .ft B .nf if (val in array) print array[val] .fi .ft .RE .PP もし、配列が多次元インデックスを持つなら、 .B "(i, j) in array" を用います。 .PP .B in はまた、 .B for ループ中で、配列のすべてのインデックス値について繰り返すために 用いることができます。 .PP 配列の要素は、 .B delete ステートメントを用いて削除することができます。 .B delete ステートメントはまた、 添字を指定せずに配列名のみを指定することにより、 配列全体を削除するためにも使えます。 .SS 変数の型と変換 .PP 変数とフィールドは、(浮動小数点数の)数値または文字列、あるいは両方として 扱われます。 変数の値がどのように解釈されるかは、変数の使われ方によって変化します。 数式中で用いられれば変数は数値として解釈され、文字列として用いられれ ば文字列として解釈されます。 .PP 変数の値を強制的に数値であると解釈させたい場合は、変数に 0 を加えます。 文字列と解釈させたい場合は空文字列を結合します。 .PP 文字列を数値に変換する必要がある場合、変換は .IR atof (3) によって行われます。 数値を文字列に変換する場合は、変数 .B CONVFMT の値をフォーマット文字列として用いて、 .IR sprintf (3) により行われます。AWK ではすべての数値は浮動小数点数ですが、整数値は常に整数 として変換が行われます。 よって、以下の場合、 .PP .RS .ft B .nf CONVFMT = "%2.2f" a = 12 b = a "" .fi .ft R .RE .PP 変数 .B b は文字列値 \fB"12"\fR となり、\fB"12.00"\fR とはなりません。 .PP .I gawk は、以下のようにして比較を行います: 2 つの変数が数値なら数値として比 較します。もし片方が数値で片方が`数値'文字列なら、数値として比較されます。 片方が数値でない文字列なら、数値のほうが文字列に変換され、文字列として 比較されます。両方とも文字列なら、文字列として比較されます。\*(PX 標準に従う なら、両方とも数値文字列の場合は数値として比較しますが、これは明ら かに間違いです。 .I gawk はそのような動作をしません。 .PP \fB"57"\fP のような文字列定数は数値文字列では .I なく 、文字列定数です。「数値文字列」の概念は、フィールド、 .B getline の入力、 .B FILENAME 、 .B ARGV の要素、 .B ENVIRON の要素、数値文字列から .B split() によって作成された配列の要素に対してのみ適用されます。 基本的な考え方では、 .I ユーザ入力 、それも数値に見えるユーザ入力のみが数値として扱われます。 .PP 初期化されていない変数は、数値としては 0 を、文字列としては "" (空文字列)を 持ちます。 .SH パターンとアクション awk は行指向の言語です。まずパターン、次にアクションが続きます。 アクションは .B { と .B } で囲みます。パターンまたはアクションは省略することもできます。 もちろん、両方とも 省略してしまっては意味がありません。 パターンがない場合、アクションはすべての入力レコードに 対して適用されます。省略されたアクションは以下と等価です。 .RS .PP .B "{ print }" .RE .PP これはレコード全体を出力します。 .PP コメントは文字 ``#'' で始まり、行末まで続きます。空行は、複数ステートメントの 間をあけるのに使うことができます。 通常、ステートメントは改行で終わります。ただし、 次の記号で行が終わる場合にはこの限りではありません: ``,'', .BR { , .BR ? , .BR : , .BR && , .B || 。 .B do または .B else で終わる行は、ステートメントが自動的に以降 の行へ継続されます。また、改行の直前に ``\e'' を置くことで、 行を継続することができます。この場合、その改行は無視されます。 .PP ``;'' で区切ることにより、1行に複数のステートメントを記述することができます。 (通常のように) パターン-アクション対中のアクション部におけるステートメントだけではなく、 パターン-アクション対ステートメント自身も、 ``;'' で区切って複数置くことができます。 .SS パターン AWK のパターンは、以下のうちのいずれかです。 .PP .RS .nf .B BEGIN .B END .BI / "regular expression" / .I "relational expression" .IB pattern " && " pattern .IB pattern " || " pattern .IB pattern " ? " pattern " : " pattern .BI ( pattern ) .BI ! " pattern" .IB pattern1 ", " pattern2 .fi .RE .PP .B BEGIN と .B END は特殊なパターンであり、入力と比較されることはありません。すべての .B BEGIN パターンに対応したアクション部は結合され、 そのようなすべてのアクション部が単一の .B BEGIN ブロック中にあるかのように扱われます。 結合されたアクションは、 すべての入力ファイルの読み込みに先立って実行されます。同様にすべての .B END ブロックは結合され、すべての入力ファイルの処理後(あるいは、exit ステートメント が実行されたとき)に実行されます。 .B BEGIN と .B END はパターン式内で他のパターンと混ぜて使うことはできません。また、 .B BEGIN と .B END パターンはアクション部を省略することができません。 .PP .BI / "regular expression" / パターンでは、正規表現(regular expression) にマッチした入力レコードに対してアクション が実行されます。正規表現は .IR egrep (1) と同じものが使えます。あとに要約を示します。 .PP .I 関係式(relational expression) では、後述のアクションについての節で示す演算子を用いることが できます。 これらは概して、特定のフィールドが正規表現にマッチするかどうかを 調べるために用いられます。 .PP 演算子 .BR && , .BR || , .B ! は、それぞれ C 言語での論理AND、論理OR、論理NOT と等価です。 C 言語と同様に、評価値が確定した時点で以降の評価を打ち切ります。 これらは複数のパターン式を結合するために使用されます。 他のプログラミング言語と同様、括弧によって評価順序を変更することができます。 .PP .B ?\^: 演算子は C 言語のものと同様です。もし、最初のパターンが真なら、 テストのために 2 番目のパターンが用いられ、そうでなければ 3 番目のパターンが 用いられます。2 番目と 3 番目のパターンのどちらかだけが評価されます。 .PP .IB pattern1 ", " pattern2 形式は .I 範囲パターン と呼ばれます。範囲パターンは、 .I pattern1 にマッチするレコードから、 .I pattern2 にマッチするレコードまでのすべてにマッチします。 この形式は、他のパターン式と混合して用いることはできません。 .SS 正規表現 awk の正規表現は .I egrep のものと同様に、拡張された正規表現です。 以下の構成要素から成り立っています。 .TP \w'\fB[^\fIabc...\fB]\fR'u+2n .I c メタ文字ではない .I c にマッチする。 .TP .I \ec リテラル文字 .I c にマッチする。 .TP .B . 改行を .I 含む 任意の 1 文字にマッチする。 .TP .B ^ 文字列の先頭にマッチする。 .TP .B $ 文字列の終端にマッチする。 .TP .BI [ abc... ] 文字リストであり、 .I abc... のいずれか 1 文字にマッチする。 .TP .BI [^ abc... ] 文字リストの逆であり、 .I abc... 以外の 1 文字にマッチする。 .TP .IB r1 | r2 選言: .I r1 または .I r2 にマッチする。 .TP .I r1r2 結合: .I r1 の直後に .I r2 が続くものにマッチする。 .TP .IB r + .I r の 1 回以上の繰り返しにマッチする。 .TP .IB r * .I r の 0 回以上の繰り返しにマッチする。 .TP .IB r ? .I r の 0 回または 1 回の繰り返しにマッチする。 .TP .BI ( r ) グループ化: .I r にマッチする。 .TP .PD 0 .IB r { n } .TP .PD 0 .IB r { n ,} .TP .PD .IB r { n , m } ブレース中に 1 つか 2 つの数値を記述することにより、 .I "インターバル表現" を表します。ブレース中に数値が 1 つある場合、直前の正規表現 .I r が .I n 回繰り返されます。2 つの数値がコンマで区切られている場合、 .I r は .I n 回から .I m 回繰り返されます。1 つの数値に続いてコンマがある場合、 .I r は少なくとも .I n 回繰り返されます。 .sp .5 インターバル表現は .B \-\^\-posix または .B \-\^\-re\-interval がコマンドラインにて指定されているときのみ利用可能です。 .TP .B \ey 語の先頭または末尾の空文字列にマッチします。 .TP .B \eB 語の中の空文字列にマッチします。 .TP .B \e< 語の先頭の空文字列にマッチします。 .TP .B \e> 語の末尾の空文字列にマッチします。 .TP .B \ew 語を構成する文字 (レター、数値、アンダスコア) にマッチします。 .TP .B \eW 語を構成する文字以外の文字にマッチします。 .TP .B \e` バッファ (文字列) の先頭の空文字列にマッチします。 .TP .B \e' バッファの末尾の空文字列にマッチします。 .PP 文字列定数中で用いることができるエスケープシーケンス(後述参照)は、 正規表現中でも使用することができます。 .PP .I 文字クラス は POSIX 標準で導入された新機能です。 文字クラスは特定の属性を持つ文字列リストの特殊表現ですが、 実際の文字集合自身は国や文字集合によって様々なものとなります。 例えば、アルファベット文字はアメリカ合州国とフランスとでは異なります。 .PP 文字クラスが有効なのは、 文字リストのブラケットの中の正規表現だけです。 文字クラスは、 .B [: と、クラスを表現するキーワードと、 .B :] で構成されます。 以下に POSIX 表現で定義される文字クラスを示します。 .TP .B [:alnum:] アルファベットと数値文字。 .TP .B [:alpha:] アルファベット文字。 .TP .B [:blank:] 空白とタブ文字。 .TP .B [:cntrl:] 制御文字。 .TP .B [:digit:] 数値文字。 .TP .B [:graph:] 印字可能で可視な文字。 (空白は印字可能ですが見えません。一方 .B a は印字可能かつ可視です。) .TP .B [:lower:] アルファベット文字の小文字。 .TP .B [:print:] 印字可能な文字 (制御文字以外)。 .TP .B [:punct:] 句読点文字 (レター、数値、制御文字、空白文字のいずれでもない文字)。 .TP .B [:space:] 空白文字 (空白、タブ、フォームフィード等の少数の文字を指す)。 .TP .B [:upper:] アルファベット文字の大文字。 .TP .B [:xdigit:] 16 進数の数値。 .PP 例えば、POSIX 標準以前では、アルファベットと数値の文字にマッチするためには、 .B /[A\-Za\-z0\-9]/ と書きました。しかし、別のアルファベット文字が文字集合に含まれる場合、 それらにはマッチしません。 POSIX 文字クラスでは、 .BR /[[:alnum:]]/ と記述することができ、文字集合の .I すべて のアルファベットと数値にマッチします。 .PP 文字リスト中には、更に 2 つの特殊シーケンスを使用できます。 これらは、 複数の文字によって表現される単一シンボル ( .I 照合文字 と呼ばれます) を持ち、 複数の文字が .I 参照 やソートにおいては等価であるとされる、非 ASCII 文字集合に適用されます。 (例えば、フランス語では単なる ``e'' とグレーブアクセント付きの e\` とでは 等価です。) .TP 照合シンボル 参照シンボルは複数文字の参照要素であり、 .B [. と .B .] で括ります。 例えば、 .B ch が参照要素の場合、 .B [[.ch.]] は正規表現となり、この参照要素にマッチします。 一方、 .B [ch] は .B c か .B h にマッチする正規表現です。 .TP 等価クラス 等価クラスは 等価な文字リストを指すロケール固有の名前です。名前は .B [= と .B =] で括ります。 例えば、名前 .B e は ``e,'' ``e\`,'', ``e\`.'' のすべてを表現するために使用されるかもしれません。 この場合、 .B [[=e=]] は .BR e , .BR e\' , .BR e\` のいずれかにマッチする正規表現となります。 .PP これらの機能は英語以外のロケールにて非常に有用です。 .I gawk が正規表現のマッチングに使用するライブラリ関数は、 現在 POSIX 文字クラスのみを理解し、 参照シンボルと等価クラスは理解しません。 .PP .BR \ey , .BR \eB , .BR \e< , .BR \e> , .BR \ew , .BR \eW , .BR \e` , .B \e' の演算子は .IR gawk 固有であり、GNU 正規表現ライブラリの機能を元にした拡張です。 .PP 様々なコマンドラインオプションによって、正規表現中の文字を .I gawk がどのように解釈するのかを制御できます。 .TP オプション無し デフォルトでは、 .I gawk は上述の POSIX 正規表現および GNU 正規表現のすべての機能を提供します。 しかしながら、インターバル表現はサポートされません。 .TP .B \-\^\-posix POSIX 正規表現のみがサポートされ、GNU 演算子はサポートされません (例えば、 .B \ew はリテラル .B w にマッチします)。 インターバル表現は許されます。 .TP .B \-\^\-traditional 伝統的な Unix .I awk の正規表現がサポートされます。GNU 演算子、インターバル表現、 POSIX 文字クラス ( .B [[:alnum:]] など) はサポートされません。 8 進または 16 進のエスケープシーケンスで表現される文字は、 正規表現のメタ文字を表現するとしても、 リテラルとして扱われます。 .TP .B \-\^\-re\-interval .B \-\^\-traditional が指定されていたとしても、正規表現中でインターバル表現をサポートします。 .SS アクション アクションは、ブレース .B { と .B } で囲みます。アクションは通常の代入、条件文、 ループ文等からなります。演算子、制御文、入出力文は C 言語とほぼ同様です。 .SS 演算子 .PP AWK での演算子を、優先順位の高いものから順に示します。 .PP .TP "\w'\fB*= /= %= ^=\fR'u+1n" .BR ( \&... ) グループ化。 .TP .B $ フィールド参照。 .TP .B "++ \-\^\-" インクリメント、デクリメント。前置も後置も可能。 .TP .B ^ べき乗(\fB**\fR も同様の意味で使用できる。また \fB**=\fR 代入演算子も存在する)。 .TP .B "+ \- !" 単項のプラス、マイナス、論理否定。 .TP .B "* / %" 乗算、除算、剰余。 .TP .B "+ \-" 加算と減算。 .TP .I space 文字列結合。 .TP .PD 0 .B "< >" .TP .PD 0 .B "<= >=" .TP .PD .B "!= ==" 通常の関係演算子。 .TP .B "~ !~" 正規表現マッチ、否定のマッチ。 .B 注意: .B ~ と .B !~ の左辺に正規表現定数 .RB ( /foo/ 等) を用いてはいけません。正規表現定数は右辺にのみ置くことができます。式 .BI "/foo/ ~ " exp は \fB(($0 ~ /foo/) ~ \fIexp\fB)\fR と等価であり、これは通常意図するものとは異なります。 .TP .B in 配列のメンバ。 .TP .B && 論理 AND。 .TP .B || 論理 OR。 .TP .B ?: C 言語の条件式と同様です。 .IB expr1 " ? " expr2 " : " expr3\c の形式で使います。もし .I expr1 が真なら式の値は .I expr2 になり、そうでなければ .I expr3 になります。 .I expr2 か .I expr3 のうち片方のみが評価されます。 .TP .PD 0 .B "= += \-=" .TP .B "*= /= %= ^=" 代入。絶対代入 .BI ( var " = " value ) と演算子代入 (他の形式) がサポートされています。 .SS 制御ステートメント .PP 制御ステートメントは以下のとおりです。 .PP .RS .nf \fBif (\fIcondition\fB) \fIstatement\fR [ \fBelse\fI statement \fR] \fBwhile (\fIcondition\fB) \fIstatement \fR \fBdo \fIstatement \fBwhile (\fIcondition\fB)\fR \fBfor (\fIexpr1\fB; \fIexpr2\fB; \fIexpr3\fB) \fIstatement\fR \fBfor (\fIvar \fBin\fI array\fB) \fIstatement\fR \fBbreak\fR \fBcontinue\fR \fBdelete \fIarray\^\fB[\^\fIindex\^\fB]\fR \fBdelete \fIarray\^\fR \fBexit\fR [ \fIexpression\fR ] \fB{ \fIstatements \fB} .fi .RE .SS 入出力ステートメント .PP 入出力ステートメントは以下のとおりです。 .PP .TP "\w'\fBprintf \fI書式, 式の列\fR'u+1n" .BI close( file ) ファイル (またはパイプ、下記参照) をクローズします。 .TP .B getline 次のレコードを .B $0 に読み込みます。 .BR NF , .BR NR , .B FNR が設定されます。 .TP .BI "getline <" file ファイル .I file から次のレコードを .B $0 に読み込みます。 .B NF が設定されます。 .TP .BI getline " var" 次のレコードを変数 .I var に読み込みます。 .BR NR , .B FNR が設定されます。 .TP .BI getline " var" " <" file ファイル .I file から次のレコードを変数 .I var に読み込みます。 .TP .B next 現在のレコードに対する処理を終了し、次のレコードを読み込み、AWK プログ ラムの最初のパターンから処理を開始します。 C 言語の continue と類似した意味を持ちます。 もし、入力データの終端に達した場合、 .B END ブロックが存在すれば実行されます。 .TP .B "nextfile" 現在の入力ファイルに対する処理を終了し、次の入力ファイルからレコードを 読み込みます。 .B FILENAME と .B ARGIND が更新され、 .B FNR が 1 にリセットされ、AWK プログラムの 最初のパターンから処理が開始されます。入力データの終端に達したときは、 もし存在すれば、 .B END ブロックが実行されます。 .B 注: 以前のバージョンの gawk では .BR "next file" と 2 語で使用されていました。この用法はまだ認識されますが、 警告メッセージを生じさせますし、最終的には無くなる表現です。 .TP .B print 現在のレコードを出力します。 出力レコードは .B ORS 変数の値にて終端されます。 .TP .BI print " expr-list" 式を出力します。各式は .B OFS の値で区切られます。出力されるレコードの最後に は .B ORS の値が付加されます。 .TP .BI print " expr-list" " >" file 式をファイル .I file に出力します。各式は .B OFS の値で区切られます。出力されるレコードの 最後には .B ORS の値が付加されます。 .TP .BI printf " fmt, expr-list" 書式付き出力です。 .TP .BI printf " fmt, expr-list" " >" file ファイル .I file への書式付き出力です。 .TP .BI system( cmd-line ) コマンド .I cmd-line を実行し、終了ステータスを返します(\*(PX に対応しない システムでは使用できない場合があります)。 .TP \&\fBfflush(\fR[\fIfile\^\fR]\fB)\fR オープンされている出力ファイルまたはパイプ .I file に関連づけられているバッファをフラッシュします。 .I file を指定しないと、標準出力がフラッシュされます。 .I file が空文字列の場合、オープンされているすべてのファイルとパイプのバッファを フラッシュします。 .PP その他の形式のリダイレクトとして以下のものが利用可能です。 .B print と .B printf に対して、 .BI >> file を指定すると出力はファイル .I file に追加され、 .BI | " command" は出力をパイプに対して行います。同様に、 .IB command "| getline" はコマンドの出力から .B getline を行ないます。 .B getline はファイル終端では 0 を、エラー時には \-1 を返します。 .SS \fIprintf\fP\^ ステートメント .PP AWK での .B printf ステートメントと .B sprintf() 関数(後述参照)は、以下の変換指定書式を受け付けます。 .TP .B %c 1 つの \s-1ASCII\s+1 文字。 .B %c に対応する引数が数値なら、その値を \s-1ASCII\s+1 コードとみなし て文字に変換します。そうでなければ、引数は文字列であると解釈され、その1 文字目が出力されます。 .TP .B %d .PD 0 .TP .B %i 10進数(整数部分)。 .TP .PD 0 .B %e .TP .PD .B %E .B [-]d.dddddde[+-]dd という形式の浮動小数点数。 .B %E 形式では .B e の代りに .B E が使用されます。 .TP .B %f .B [-]ddd.dddddd という形式の浮動小数点数。 .TP .PD 0 .B %g .TP .PD .B %G .B %e と .B %f の短い方の形式の浮動小数点数。余計な 0 は省略されます。 .B %G 形式では .B %e の代りに .B %E を使用します。 .TP .B %o 符号なしの 8 進数(整数)。 .TP .B %s 文字列。 .TP .PD 0 .B %x .TP .PD .B %X 符号なしの 16 進数(整数)。 .B %X 形式では、 .B abcdef の代りに .B ABCDEF を用います。 .TP .B %% 単一の文字 .B % 。引数は使用しません。 .PP .B % と上記の制御文字との間にオプショナルな追加のパラメータを置く ことができます。以下にそれらを示します。 .TP .B \- 左寄せ。 .TP .I 空白 数値変換において、正の値のプレフィックスは空白となり、 負の値のプレフィックスはマイナス記号となります。 .TP .B + プラス記号は幅修正子 (後述) の前に使用し、 整形されるデータが正であったとしても、 数値変換に対して常に符号を付けることを指示します。 .B + は空白修正子に優先します。 .TP .B # ある制御レターに対して「別の形式」を使用します。 .BR %o に対しては先行する 0 を与え、 .BR %x と .BR %X に対しては非 0 の結果に対して先行する .BR 0x と .BR 0X を与えます。 .BR %e , .BR %E , .B %f に対しては結果に常に小数点を含めます。 .BR %g , .B %G に対しては結果の後尾から 0 を取り除きません。 .TP .B 0 先頭の .B 0 (ゼロ) はフラグとして動作し、 出力を空白ではなく 0 でパディングすることを示します。 これは非数値の出力書式に対しても適用されます。 このフラグが有効なのは、フィールド幅が印字される値の幅より広いときだけです。 .TP .I width フィールドが指定した幅 .I width になるようにパディングされます。フィールドは通常空白でパディングされます。 .B 0 フラグが使用された場合には 0 でパディングされます。 .TP .BI . prec 印字において使用する精度を数値で指定します。 .BR %e , .BR %E , .B %f の書式に対しては、小数点の右側に印字される数字の数を指定します。 .BR %g , .B %G の書式に対しては、仮数部の最大数を指定します。 .BR %d , .BR %o , .BR %i , .BR %u , .BR %x , .B %X の書式に対しては、印字される数字の最小数を指定します。 文字列に対しては、印字される文字列からとりだされる最大の文字数を指定します。 .PP \*(AN C の .B printf() の動的な幅 .I width と精度 .I prec の指定機能が使用できます。 .B 幅 または .B 精度 の指定部分に .B * を指定することで、その値を .B printf または .B sprintf() への引数で指定できます。 .SS 特殊ファイル名 .PP .B print や .B printf で書き込みときでも、 .B getline でファイルから読み取るときでも、 入出力リダイレクトを行う場合、 .I gawk は内部的な特殊なファイル名を解釈します。 これらのファイル名により、親プロセス(通常はシェルです)から受け継いだ オープン状態のファイルディスクリプタを用いて入出力を行ったり、実行中の .I gawk プロセスに関する情報を得ることができます。 特殊ファイル名は以下のとおりです。 .TP \w'\fB/dev/stdout\fR'u+1n .B /dev/pid 現在のプロセスのプロセスID(10進数で、最後に改行が付きます)を 読み込むことができます。 .TP .B /dev/ppid 現在のプロセスの親のプロセスのプロセスID(10進数で、最後に改行が付きます)を 読み込むことができます。 .TP .B /dev/pgrpid 現在のプロセスのプロセスグループ ID(10進数で、最後に改行が付きます) を読み込むことができます。 .TP .B /dev/user このファイルを読むことで、改行で終わる単一のレコードが得られます。 各フィールドは空白で区切られています。 .B $1 は .IR getuid (2) システムコールの値、 .B $2 は .IR geteuid (2) システムコールの値、 .B $3 は .IR getgid (2) システムコールの値、 .B $4 は .IR getegid (2) システムコールの値です。もし、さらにフィールドがあれば、 それは .IR getgroups (2) システムコールが返すグループ ID のリストです。 全てのシステムで複数のグループがサポートされているわけではありません。 .TP .B /dev/stdin 標準入力。 .TP .B /dev/stdout 標準出力。 .TP .B /dev/stderr 標準エラー出力。 .TP .BI /dev/fd/\^ n オープンされたファイルディスクリプタ .I n に対応しているファイル。 .PP エラーメッセージを出力するには、以下の方法が便利です。 .PP .RS .ft B print "You blew it!" > "/dev/stderr" .ft R .RE .PP もしこの機能が無かったら、次のようにするしかないところです。 .PP .RS .ft B print "You blew it!" | "cat 1>&2" .ft R .RE .PP これらのファイル名は、コマンドラインのデータファイル指定で使うこともできます。 .SS 数値関数 .PP AWK は以下の定義済み数値関数を持っています。 .PP .TP \w'\fBsrand(\fR[\fIexpr\^\fR]\fB)\fR'u+1n .BI atan2( y , " x" ) .I y/x の逆正接をラジアンで与えます。 .TP .BI cos( expr ) .I expr の余弦をラジアンで与えます。 .TP .BI exp( expr ) 指数関数。 .TP .BI int( expr ) 整数への切捨て。 .TP .BI log( expr ) 自然対数。 .TP .B rand() 0 から 1 の間の乱数を与えます。 .TP .BI sin( expr ) .I expr の正弦をラジアンで与えます。 .TP .BI sqrt( expr ) 平方根。 .TP \&\fBsrand(\fR[\fIexpr\^\fR]\fB)\fR .I expr の値を乱数生成関数の種として用います。式が指定されなかった場合は、 時刻が用いられます。直前の種の値を返します。 .SS 文字列関数 .PP .I gawk は以下の定義済み文字列関数を持っています。 .PP .TP "\w'\fBsprintf(\^\fIfmt\fB\^, \fIexpr-list\^\fB)\fR'u+1n" \fBgensub(\fIr\fB, \fIs\fB, \fIh \fR[\fB, \fIt\fR]\fB)\fR 対象文字列 .I t から正規表現 .I r のマッチを探します。 .I h が .B g または .B G で開始する文字列の場合、マッチする .I r をすべて .I s に置き換えます。 そうでない場合、 .I h は何番目の .I r のマッチを置き換えるのかを示します。 .I t が与えられない場合、代りに .B $0 が使用されます。 置換テキスト .I s では、シーケンス .BI \e n\fR ただし .I n は 1 から 9 までの数字を使用して、 .I n 番目にマッチした括弧付きサブ式を示すことができます。 シーケンス .B \e0 は文字 .B & と同様、マッチしたテキスト全体を表します。 .B sub() や .B gsub() とは異なり、修正された文字列が関数の結果として返され、 元の対象テキストは変更され .I ません 。 .TP "\w'\fBsprintf(\^\fIfmt\fB\^, \fIexpr-list\^\fB)\fR'u+1n" \fBgsub(\fIr\fB, \fIs \fR[\fB, \fIt\fR]\fB)\fR 文字列 .I t 中で正規表現 .I r にマッチした部分をすべて .I s に置換します。置換の個数を返します。 .I t を指定しなかった場合は .B $0 が用いられます。 置換テキストでは、 .B & は実際にマッチしたテキストで置き換えられます。 .B \e& を使用するとリテラルの .B & を得ることができます。 .BR sub() , .BR gsub() , .B gensub() における .B & とバックスラッシュに関する完全な議論は .I "AWK Language Programming" を参照してください。 .TP .BI index( s , " t" ) 文字列 .I s 中に含まれる文字列 .I t の位置を返します。 .I t が含まれていない場合は 0 を返します。 .TP \fBlength(\fR[\fIs\fR]\fB) 文字列 .I s の長さを返します。 .I s を指定しなかった場合には .B $0 の長さを返します。 .TP .BI match( s , " r" ) 文字列 .I s 中で正規表現 .I r にマッチする位置を返します。マッチしない場合は 0 を 返します。 .B RSTART と .B RLENGTH の値が設定されます。 .TP \fBsplit(\fIs\fB, \fIa \fR[\fB, \fIr\fR]\fB)\fR 文字列 .I s を正規表現 .I r を用いて分割し、配列 .I a に格納します。 フィールド数を返します。 .I r が省略され た場合は .B FS が用いられます。配列 .I a の内容は、分割前にクリアされます。 分割は、上述のフィールド分割と同じ動作を行います。 .TP .BI sprintf( fmt , " expr-list" ) 書式 .I fmt に従って .I exp-list を整形表示し、結果の文字列を返します。 .TP \fBsub(\fIr\fB, \fIs \fR[\fB, \fIt\fR]\fB)\fR .B gsub() と似てますが、最初にマッチした文字列のみが置換されます。 .TP \fBsubstr(\fIs\fB, \fIi \fR[\fB, \fIn\fR]\fB)\fR 文字列 .I s の .I i 文字目から始まる最大 .I n 文字の部分文字列を返します。 .I n が省略された場合、 .I i 文字目以降の部分文字列が返されます。 .TP .BI tolower( str ) 文字列 .I str をコピーし、大文字をすべて小文字に変換したものを返します。 アルファベットでない文字は変化しません。 .TP .BI toupper( str ) 文字列 .I str をコピーし、小文字をすべて大文字に変換したものを返します。 アルファベットでない文字は変化しません。 .SS 時間関数 .PP タイムスタンプを含んだログファイルの処理は AWK プログラムの主な使い道の1つですから、 .I gawk はタイムスタンプを取り出したり、フォーマット するための 2 つの関数を提供します。 .PP .TP "\w'\fBsystime()\fR'u+1n" .B systime() 基準時点からの経過秒数を返します (\*(PX システムでは、基準時点は UTC で 1970 年 1 月 1 日 0:00 です)。 .TP \fBstrftime(\fR[\fIformat \fR[\fB, \fItimestamp\fR]]\fB)\fR 書式 .I format に従って .I timestamp をフォーマットします。 .I timestamp は .B systime() が返す値と同じ形式でなければなりません。 .I timestamp が省略された場合、現在の日付が使用されます。 .I format が省略された場合、 .IR date (1) が出力に使用するものと同じデフォルトフォーマットが使用されます。 利用可能なフォーマットについては、\*(AN C の .B strftime() 関数の仕様を参照して下さい。パブリックドメインな .IR strftime (3) とそのマニュアルページが .I gawk とともに配布されています。もし、 .I gawk を作成するためにその .B strftime を用いた場合は、そのマニュアルに記述されている変換書式が .I gawk でも利用可能です。 .SS 文字列定数 .PP AWK での文字列定数は、ダブルクォート(\fB"\fR)に狭まれた文字の列です。 文字列内では、C 言語のようにいくつかの .I エスケープシーケンス が使えます。 .PP .TP \w'\fB\e\^\fIddd\fR'u+1n .B \e\e バックスラッシュそのもの。 .TP .B \ea 「警告」文字。通常は \s-1ASCII\s+1 \s-1BEL\s+1 文字です。 .TP .B \eb バックスペース。 .TP .B \ef 改ページ(フォームフィード)。 .TP .B \en 改行。 .TP .B \er 復帰(キャリッジリターン)。 .TP .B \et 水平タブ。 .TP .B \ev 垂直タブ。 .TP .BI \ex "\^hex digits" .B \ex に続く 16 進数で表現された文字。\*(AN C と同様に、 .B \ex に続くすべての 16 進数字 はエスケープシーケンスの一部であるとみなされます。 (この機能によりコミッティによる言語デザインが分かります。) 例えば、\fB"\ex1B"\fR は \s-1ASCII\s+1 \s-1ESC\s+1 (エスケープ) 文字です。 .TP .BI \e ddd 1桁か2桁か3桁の 8 進数で表現された文字。例えば、 \fB"\e033"\fR は \s-1ASCII\s+1 \s-1ESC\s+1 (エスケープ) 文字です。 .TP .BI \e c 文字 c そのもの。 .PP エスケープシーケンスは正規表現定数内でも用いることができます(例えば、 .B "/[\ \et\ef\en\er\ev]/" は空白文字にマッチします)。 .PP 互換モードでは、8 進および 16 進のエスケープシーケンスで表現される文字は、 正規表現定数として使用された場合、リテラルとして扱われます。 それゆえ、 .B /a\e52b/ は .B /a\e*b/ と等価です。 .SH 関数 AWK では関数を以下のようにして定義します。 .PP .RS \fBfunction \fIname\fB(\fIparameter list\fB) { \fIstatements \fB}\fR .RE .PP 関数は、パターンまたはアクションの式から呼び出されたときに実行されます。 関数呼び出しにおいて与えられた実引数が、関数宣言における仮引数に 受け渡されます。 このとき配列の場合は参照渡しが行われ、他の変数の場合は値渡しで行われます。 .PP 元々 AWK に関数は備わっていませんでしたので、局所変数の機構はあまり スマートではありません。 局所変数は引数リストの余分な引数として宣言します。局所変数と関 数引数を区別するため、余分な空白で区切るのが慣習です。例えば、以下のよ うにします。 .PP .RS .ft B .nf function f(p, q, a, b) # a & b は局所変数 { \&..... } /abc/ { ... ; f(1, 2) ; ... } .fi .ft R .RE .PP 関数呼び出しにおける左括弧は、空白を狭まずに関数名の直後に 置かなければいけません。 これは、文字列結合演算子との曖昧さを生じさせないために必要です。 この制限は、上述の組み込み関数にはあてはまりません。 .PP 関数は、他の関数を呼び出したり、自分自身を再帰的に呼び出すことができます。 局所変数として用いられる関数引数は、関数起動時に空文字列および 0 に初期化されます。 .PP .B \-\^\-lint が指定されたとき、 .I gawk は実行時ではなくパーズ時に未定義関数の呼び出しに関して警告します。 実行時の未定義関数の呼び出しは致命的なエラーとなります。 .PP .B function のかわりに .B func を用いることができます。 .SH 使用例 .nf ``/etc/passwd'' から全ユーザのログイン名を取り出し、ソートして出力する。 .ft B BEGIN { FS = ":" } { print $1 | "sort" } .ft R ファイルの行数を数える。 .ft B { nlines++ } END { print nlines } .ft R 行番号をつける。 .ft B { print FNR, $0 } .ft R 全ファイルを通した行番号をつける。 .ft B { print NR, $0 } .ft R .fi .SH 関連項目 .IR egrep (1), .IR getpid (2), .IR getppid (2), .IR getpgrp (2), .IR getuid (2), .IR geteuid (2), .IR getgid (2), .IR getegid (2), .IR getgroups (2) .PP .IR "The AWK Programming Language" , Alfred V. Aho, Brian W. Kernighan, Peter J. Weinberger, Addison-Wesley, 1988. ISBN 0-201-07981-X. .PP .IR "AWK Language Programming" , Edition 1.0, published by the Free Software Foundation, 1995. .SH POSIX 互換 .I gawk は最新版の \*(UX .I awk との互換性だけでなく、\*(PX 標準との互換性も追求しています。 このため .I gawk には以下のような機能が取り入れられています。 これらの機能は AWK 本には述べられていませんが、 Bell Labs および \*(PX 標準の .I awk が有している機能です。 .PP プログラム実行前に変数代入を行なう .B \-v オプションは新しい物です。 AWK 本によれば、コマンドラインで指定された変数代入は .I awk が引数をファイル名としてオープンする際に行なわれることになります。つまり これは .B BEGIN ブロックの実行後です。しかしながら初期の頃の実装では、引数の中でファイル名に 先立って変数代入が指定されている場合には、代入は .B BEGIN ブロック実行の .I 前に 行われていました。そしてアプリケーションは、この「仕様」に依存する ようになりました。 .I awk がそのドキュメントに合うように直された時、昔の動作に依存している アプリケーションの便宜を図るためにこのオプションが加えられました。 (この仕様は AT&T および GNU の開発者達によって合意されました。) .PP 独自機能のための .B \-W オプションは \*(PX 標準に従ったものです。 .PP 引数の列に特別なオプション ``\fB\-\^\-\fP'' を指定すると、 .I gawk はそこがオプションの終わりであると解釈します。 互換モードにおいては未定義オプションは警告が出力され、それ以外のものは 無視されます。 通常の実行においては残りの引数は AWK プログラムに引き渡されます。 .PP AWK 本は .B srand() の返り値を定義していません。 \*(PX 標準 では、その関数が使っている種を返し、 乱数シーケンスを追跡できるようにしています。 したがって .I gawk における .B srand() も現在の種を返すようにしてあります。 .PP その他にも以下のような新機能があります。 .B \-f オプションの複数回使用 (MKS .IR awk に倣いました); .B ENVIRON 配列; エスケープシーケンス .B \ea と .B \ev ( .I gawk で最初に実装され、AT&T の .I awk にフィードバックされました); 組み込み関数 .B tolower() と .B toupper() (AT&T に倣いました); .B printf における \*(AN C 変換指定 (AT&T 版で最初に実装されました)。 .SH GNU 拡張 .I gawk は \*(PX .I awk に対して多くの拡張が行なわれています。 この節ではそれらについて解説します。 .B \-\^\-traditional オプション付きで .I gawk を起動することによって、 ここで述べられている拡張機能をすべて禁止することができます。 .PP .I gawk が持つ以下の機能は \*(PX .I awk では使用できません。 .RS .TP \w'\(bu'u+1n \(bu エスケープシーケンス .B \ex 。( .B \-\^\-posix で抑止できます。) .TP \w'\(bu'u+1n \(bu .B fflush() 関数。( .B \-\^\-posix で抑止できます。) .TP \(bu .BR systime() , .BR strftime() , .B gensub() の各関数。 .TP \(bu 入出力リダイレクトで利用可能な特殊ファイル名は理解されません。 .TP \(bu 変数 .BR ARGIND , .BR ERRNO , .B RT は特殊変数ではありません。 .TP \(bu 変数 .B IGNORECASE とその副作用は利用できません。 .TP \(bu 変数 .B FIELDWIDTHS と固定長フィールド分割。 .TP \(bu .B RS の正規表現としての使用。 .TP \(bu .B FS に空文字列を設定することにより各文字を切り出す能力と、 .B split() の 3 番目の引数。 .TP \(bu .B \-f オプションで指定されたファイル名についてパス検索を行わないこと。 よって、環境変数 .B AWKPATH は特殊な変数ではありません。 .TP \(bu 現在の入力ファイルに対する処理を終わらせるために使用される .B "nextfile" 。 .TP \(bu 配列全体を削除するために使用される .BI delete " 配列" 。 .RE .PP AWK 本は関数 .B close() の返り値を定義していません。 .I gawk の .B close() は、ファイルやパイプをクローズする際に呼び出す .IR fclose (3) や .IR pclose (3)、 からの返り値を返します。 .PP オプション .B \-\^\-traditional 付きで .I gawk を起動し .B \-F オプションへの引数 .I fs として ``t'' を与えた場合に、 .B FS の値はタブ文字に設定されます。 .B "gawk \-F\et \&..." とタイプしても、シェルが単に ``t'' をクォートするので、``\et'' は .B \-F オプションに渡されません。 これは少々見苦しい特殊事例ですので、デフォルトの動作としては 採用されていません。 .B \-\^\-posix を指定した場合にも、この動作は行なわれません。 タブ文字をフィールドセパレータとして使用したい場合には、 クォートを使用するのが最良です: .BR "gawk \-F'\et' \&..." . .ig .PP If .I awk was compiled for debugging, it will accept the following additional options: .TP .PD 0 .B \-Wparsedebug .TP .PD .B \-\^\-parsedebug Turn on .IR yacc (1) or .IR bison (1) debugging output during program parsing. This option should only be of interest to the .I gawk maintainers, and may not even be compiled into .IR gawk . .. .SH 歴史的機能 .I gawk は歴代の AWK の実装にあった 2 つの機能を備えています。 1 つめとして、組み込み関数 .B length() は引数無しで呼び出せるだけでなく、さらに括弧無しでも呼び出せます! したがって .RS .PP .ft B a = length # Holy Algol 60, Batman! .ft R .RE .PP は以下の2例と同じです。 .RS .PP .ft B a = length() .br a = length($0) .ft R .RE .PP \*(PX 標準ではこの機能は ``deprecated'' と注意書きされており、 .I gawk ではコマンドラインで .B \-\^\-lint を指定した場合に、この機能の使用に対して警告を出力します。 .PP もう 1 つは、 .BR while , .BR for , .B do ループ本体の外でも .BR continue , .B break ステートメントを使用できるという機能です。 伝統的な AWK の実装では、このように使用した .B continue ステートメントを .B next ステートメントと等価なものとして扱ってきました。 .I gawk では .B \-\^\-traditional が指定された場合に、この機能を使うことができます。 .SH 環境変数 環境に .B POSIXLY_CORRECT が存在する場合には、 .I gawk はコマンドラインで .B \-\^\-posix が指定されている時と全く同じ動作をします。 このとき .B \-\^\-lint が指定されていると .I gawk はこの作用についての警告メッセージを出力します。 .PP .B AWKPATH 環境変数を使用して、 .I gawk が .B \-f および .B \-\^\-file オプションで指定されたファイル名を検索するディレクトリを指定できます。 .SH バグ コマンドラインでの変数代入機能を使用するには、変数への代入を直接 コマンドラインに書けばよく、 .B \-F オプションをつける必要はありません。 このオプションは昔の .I awk との互換性のためだけに残されています。 .PP ファイル .B /dev/fd および .BR /dev/stdin , .BR /dev/stdout , .B /dev/stderr を実際にサポートしているシステムでの .I gawk からは、それらがないシステムとは違った出力が得られるかもしれません。 .I gawk はそれらのファイルを内部で解釈する際に標準出力への出力を .B /dev/stdout への出力と同期させますが、それらのファイルを持つシステムでは 出力はそれぞれ異なるファイルへ向けられます。 利用者の方で気を付けるようにしてください(Caveat Emptor)。 .PP 文法的に誤った単一文字プログラムはパーズスタックを溢れさせる傾向があり、 まったく分からないメッセージを生成する傾向にあります。 このようなプログラムの診断は驚くべきことに一般に難しく、 診断の努力はまったく無意味になります。 .SH バージョン情報 このマニュアルは .IR gawk バージョン 3.0.2 について記載しています。 .SH 作者 \*(UX .I awk の最初のバージョンは、AT&T Bell Labs の Alfred Aho と Peter Weinberger および Brian Kernighan によって設計、実装されました。 Brian Kernighan はその保守と改良を続けています。 .PP Free Software Foundation の Paul Rubin と Jay Fenlason が、Seventh Edition \*(UX で配布された最初のバージョンの .I awk と互換性を持つように .I gawk を書きました。 John Woods は数々のバグ修正を送って下さいました。 David Trueman は、Arnold Robbins が送って下さった内容をもとに、 .I gawk を新バージョンの \*(UX .I awk 互換にしました。 .PP DOS への最初の移植は Conrad Kwok と Scott Garfinkle によって 行なわれました。 現在は Scott Deifik が DOS 版の保守をしています。 Pat Rankin は VMS への移植を行ない、Michal Jaegermann は Atari ST への 移植を行ないました。 OS/2 への移植は Kai Uwe Rommel が Darrel Hankerson の助けを借りて 行ないました。 Fred Fish が Amiga サポートの提供を行いました。 .SH バグレポート .I gawk のバグを見付けたら、電子メールを .B bug-gnu-utils@prep.ai.mit.edu 宛に送るとともに、カーボンコピーを .B arnold@gnu.ai.mit.edu 宛に送ってください。 電子メールには、オペレーティングシステムとそのリビジョン、 .I gawk のリビジョン、コンパイルに使用した C コンパイラ、 問題を再現するできるだけ小さなテストプログラムとデータを記述してください。 .PP バグレポートを送る前に 2 つのことを行ってください。 第 1 に、最新の .I gawk を使用されていることを確認してください。 多くの (通常微妙な) バグが各々のリリースで修正されていますので、 ご使用のものが古い場合には問題は既に解決されているかもしれません。 第 2 に、このマニュアルページとリファレンスマニュアルを注意深く読み、 あなたがバグだと思うものが確かにバグであり、 大きく変わった言語仕様ではないことを確認してください。 .PP バグレポートを .B comp.lang.awk に投稿することだけはしないでください。 .I gawk の開発者達は時々このニュースグループを読みますが、 バグレポートをこのニュースグループに投稿しても バグレポートとして信頼性がありません。 上記のアドレスへの電子メールでお願いします。 .SH 謝辞 Bell Labs の Brian Kernighan はテストおよびデバッグの間、貴重な助力を 提供して下さいました。 感謝致します。 -.SH 複製許諾 +.SH COPYING PERMISSIONS Copyright \(co\) 1996 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this manual page provided the copyright notice and this permission notice are preserved on all copies. .ig Permission is granted to process this file through troff and print the results, provided the printed document carries copying permission notice identical to this one except for the removal of this paragraph (this paragraph not being relevant to the printed manual page). .. .PP Permission is granted to copy and distribute modified versions of this manual page under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. .PP Permission is granted to copy and distribute translations of this manual page into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Foundation. diff --git a/ja_JP.eucJP/man/man1/cccp.1 b/ja_JP.eucJP/man/man1/cccp.1 index 833962a530..191f47a0d9 100644 --- a/ja_JP.eucJP/man/man1/cccp.1 +++ b/ja_JP.eucJP/man/man1/cccp.1 @@ -1,650 +1,650 @@ .\" Copyright (c) 1991, 1992, 1993 Free Software Foundation -*- nroff -*- .\" See section COPYING for conditions for redistribution .\" .\" %Id: cpp.1,v 1.3 1994/11/02 09:07:33 deraadt Exp % .\" jpman %Id: cccp.1,v 1.2 1997/05/12 00:19:12 jsakai Stab % .\" .TH cpp 1 "April 30, 1993" "FreeBSD" "GNU Tools" .SH 名称 cpp \- GNU-C 互換のコンパイラプリプロセッサ .SH 書式 .hy 0 .na .TP .B cpp .RB "[\|" \-$ "\|]" .RB "[\|" \-A \c .I predicate\c .RB [ (\c .I value\c .BR ) ]\|] .RB "[\|" \-C "\|]" .RB "[\|" \-D \c .I name\c .RB [ =\c .I definition\c \&]\|] .RB "[\|" \-dD "\|]" .RB "[\|" \-dM "\|]" .RB "[\|" "\-I\ "\c .I directory\c \&\|] .RB "[\|" \-H "\|]" .RB "[\|" \-I\- "\|]" .RB "[\|" "\-imacros\ "\c .I file\c \&\|] .RB "[\|" "\-include\ "\c .I file\c \&\|] .RB "[\|" "\-idirafter\ "\c .I dir\c \&\|] .RB "[\|" "\-iprefix\ "\c .I prefix\c \&\|] .RB "[\|" "\-iwithprefix\ "\c .I dir\c \&\|] .RB "[\|" \-lang\-c "\|]" .RB "[\|" \-lang\-c++ "\|]" .RB "[\|" \-lang\-objc "\|]" .RB "[\|" \-lang\-objc++ "\|]" .RB "[\|" \-lint "\|]" .RB "[\|" \-M\ [ \-MG "\|]]" .RB "[\|" \-MM\ [ \-MG "\|]]" .RB "[\|" \-MD\ \c .I file\ \c \&\|] .RB "[\|" \-MMD\ \c .I file\ \c \&\|] .RB "[\|" \-nostdinc "\|]" .RB "[\|" \-nostdinc++ "\|]" .RB "[\|" \-P "\|]" .RB "[\|" \-pedantic "\|]" .RB "[\|" \-pedantic\-errors "\|]" .RB "[\|" \-traditional "\|]" .RB "[\|" \-trigraphs "\|]" .RB "[\|" \-U \c .I name\c \&\|] .RB "[\|" \-undef "\|]" .RB "[\|" \-Wtrigraphs "\|]" .RB "[\|" \-Wcomment "\|]" .RB "[\|" \-Wall "\|]" .RB "[\|" \-Wtraditional "\|]" .br .RB "[\|" \c .I infile\c .RB | \- "\|]" .RB "[\|" \c .I outfile\c .RB | \- "\|]" .ad b .hy 1 .SH 解説 C プリプロセッサは、 実際のコンパイルの前にプログラムを変換するために C コンパイラから自動的に利用される .I マクロプロセッサ\c です。 長い記述を簡略してマクロとして定義することができるため、 マクロプロセッサと呼ばれます。 C プリプロセッサは、以下の4つの機能を提供します。 .TP \(bu ヘッダファイルを読み込みます。 これは プログラムに組み込まれる (C 言語の)宣言の入ったファイルです。 .TP \(bu C 言語の任意の部分の省略形として \c .I マクロ\c \&を定義し、C プリプロセッサがプログラム内の全てのマクロを その定義で置き換えます。 .TP \(bu 条件文の処理をします。専用のプリプロセッサコマンドを用いて、 いろいろな条件にしたがってプログラムの一部を含めたり除外したりできます。 .TP \(bu 行番号の制御をします。 ソースファイルと コンパイルされた中間ファイルとを組み合わせたり再アレンジしたりするプログラムを 用いる場合、 コンパイラにオリジナルのソースの何行目であるかを知らせるための、 行番号制御のプリプロセッサコマンドを利用できます。 .PP C プリプロセッサは、そのインプリメントによって細かな部分に違いが いくつかあります。GNU C プリプロセッサの完全なドキュメントは、 .B info ファイルの `\|\c .B cpp.info\c \&\|', もしくは、マニュアルの .I The C Preprocessor\c \&を参照して下さい。 この双方は `\|\c .B cpp.texinfo\c \&\|'から生成されます。GNU C プリプロセッサは ANSI Standard C のスーパセットと なっています。 ANSI Standard C では、今日 C プログラムで一般的に用いられている多くの (無害な)構造が認められていません。 この非互換性はユーザにとっては不便であり、そのため GNU C preprocessor ではこの記述をデフォルトで受け付けるように作られています。 厳密にいえば、 ANSI Standard C にするためには オプションとして `\|\c .B \-trigraphs\c \&\|', `\|\c .B \-undef\c \&\|', `\|\c .B \-pedantic\c \&\|'をつけなければなりません。 しかし経験則から、厳密な ANSI Standard C にあわせてこうした設定を 行なうと支障のある場合が多いことがわかっています。 ほとんどの場合は、C プリプロセッサは明示的に実行する必要はありません。 C コンパイラが自動的に実行してくれるからです。しかしながら、 明示的にプリプロセッサを実行するのが有効なことが個々にはあります。 C プリプロセッサ は、引数として \c .I infile\c \& と \c .I outfile\c \&の 2 つのファイル名を期待します。 プリプロセッサは `\|\c .B #include\c \&\|'で指定したファイルと一緒に \c .I infile\c を読み込みます。 入力ファイルの組み合わせで作られた出力は、 全て \c .I outfile\c \&に書かれます。 .I infile\c \& と \c .I outfile\c \& の指定に `\|\c .B \-\c \&\|'を使用することができます。\c .I infile\c \& が `\|\c .B \-\c \&\|' であれば\c \& 標準入力からデータを読み、\c .I outfile\c \& が `\|\c .B \-\c \&\|' であれば標準出力へ結果を書きます。もし \c .I outfile\c \& もしくは両方のファイル名が省略された場合、 省略されたファイルの代わりに標準入力と標準出力が使われます。 .SH オプション 以下が C プリプロセッサが受け付けるオプションの一覧です。 これらのオプションは、 プリプロセッサがコンパイラから起動されている場合にも 自動的に引き渡されるので、 C プログラムをコンパイルする際にも指定することができます。 .TP .B \-P `\|\c .B #\c \&\|'-行番号 という行番号情報をプリプロセッサの出力に含めません。 これは、C 以外の言語で行番号情報が含まれているとエラーを起こす言語を 処理する場合に有用でしょう。 .TP .B \-C コメントを削除せず、そのまま出力ファイルに含めます。 マクロ呼び出しの引数に現れるコメントはマクロ呼び出しの展開後にコピーされます。 .TP .B -traditional ANSI ではなく、旧形式の C の文法として解釈します。 .TP .B -trigraphs ANSI標準のトリグラフ(trigraph)構文を処理します。 これは ANSI C で 1 文字を表示すると定められた `\|\c .B ??\c \&\|' で始まる 3 文字の並びです。例えば、`\|\c .B ??/\c \&\|' は `\|\c .BR "\e" "\|'" を表しますので、`\|\c .B '??/n'\c \&\|' は改行文字の文字定数となります。 厳密に言えば、GNU C プリプロセッサの `\|\c .B \-trigraphs\c \&\|' オプションは ANSI C 標準を完全にはサポートしません。 が、普通のユーザならばその違いに気づく事は稀でしょう。 トリグラフについで、これ以上知りたいとは思わないでしょ? .TP .B \-pedantic `\|\c .B #else\c \&\|' や `\|\c .B #endif\c \&\|' の後にコメント以外のテキストがつくといった場合に、 ANSI C 標準で求められる警告を出力します。 .TP .B \-pedantic\-errors `\|\c .B \-pedantic\c \&\|' に似ていますが、警告ではなくエラーにします。 .TP .B \-Wtrigraphs トリグラフがあると警告を出力します(ただし、トリグラフの処理は行います)。 .TP .B \-Wcomment .TP .B \-Wcomments コメント開始シーケンスである `\|\c .B /*\c \&\|' がコメント中に存在したならば警告を発生します (両形式は同じ効果を持ちます)。 .TP .B \-Wall `\|\c .B \-Wtrigraphs\c \&\|' と `\|\c .B \-Wcomment\c \&\|' (ただし `\|\c .B \-Wtraditional\c \&\|' は除く) を指定したのと同じです。 .TP .B \-Wtraditional ANSI と伝統派の C とで異なる振る舞いをとる構文が出現した場合に 警告を発します。 .TP .BI "\-I " directory\c \& ディレクトリ \c .I directory\c \& をヘッダファイルを検索するディレクトリリストの末尾に追加します。 このオプションは、指定したディレクトリが システムのヘッダファイルが格納されているディレクトリよりも先に 検索されるので、ユーザ自身の作成したバージョンで システムが提供するヘッダファイルを上書きさせることもできます。 1 つ以上の `\|\c .B \-I\c \&\|' オプションを使用する場合、ディレクトリは左から右の順番で検索され、 標準のシステムヘッダファイルはその後になります。 .TP .B \-I\- `\|\c .B \-I\-\c \&\|' オプションよりも前に指定された `\|\c .B \-I\c \&\|' オプションで与えられたディレクトリは、`\|\c .B #include \c \&"\c .I file\c \&"\c \&\|' のインクルード文の場合にのみ検索されます。`\|\c .B #include <\c .I file\c \&>\c \&\|' では検索されません。 オプション `\|\c .B \-I\-\c \&\|' の後のオプション `\|\c .B \-I\c \&\|' に追加のディレクトリが指定された場合、それらのディレクトリは 全ての `\|\c .B #include\c \&\|' 文で検索されます。 付け加えて言うならば、`\|\c .B \-I\-\c \&\|' オプションを指定すると、カレントディレクトリは `\|\c .B #include \c .I \&"file\c \&"\c \&\|' 文に対する最初の検索ディレクトリではなくなります。 それゆえ、カレントディレクトリは明示的に `\|\c .B \-I.\c \&\|' として指定された場合にのみ検索されることになります。 `\|\c .B \-I\-\c \&\|' と `\|\c .B \-I.\c \&\|' を双方とも指定することで、どのディレクトリがカレントディレクトリ の前に、あるいは後に検索されるかを厳密に指定することができます。 .TP .B \-nostdinc ヘッダファイルの検索に標準システムディレクトリを用いません。`\|\c .B \-I\c \&\|' オプションで指定したディレクトリ(と、もし適切であるならば カレントディレクトリ)が検索されます。 .TP .B \-nostdinc++ ヘッダファイルの検索に C++ 仕様の標準ディレクトリを用いません。 が、その他の標準ディレクトリは検索します。 (このオプションは libg++ の構築時に用いられます。) .TP .BI "\-D " "name"\c \& \c .I name\c \& を既定義のマクロとして、`\|\c .B 1\c \&\|' に定義します。 .TP .BI "\-D " "name" = definition \& \c .I name\c \& をマクロとして\c .I definition\c \& に定義します。\c .I definition\c \& の内容に制限はありませが、プリプロセッサをシェルやシェルに類似した プログラムから起動している場合、シェルの文法上意味を持つスペース などの文字を保護するため、そのシェルのクォート文法を使用する必要が あります。もし、1 つの .I name\c \& に対して複数の `\|\c .B \-D\c \&\|' を指定したならば、もっとも右側の定義が有効となります。 .TP .BI "\-U " "name"\c \&\c .I name\c \& を定義しません。同一の \c .I name\c \& に対して `\|\c .B \-U\c \&\|' と `\|\c .B \-D\c \&\|' の双方が指定された場合、`\|\c .B \-U\c \&\|' が `\|\c .B \-D\c \&\|' に優先し、 \c .I name\c \& は定義されません。 .TP .B \-undef 非標準のマクロを一切定義しません。 .TP .BI "\-A " "name(" value ) (\c .B #assert\c \& コマンドと同じ方法で) 述語 \c .I name\c \& にトークンリスト \c .I value\c \& をアサートします。シェルのコマンドライン上では括弧を エスケープするなりクォートすることを忘れないで下さい。 既定義のアサーション全てを取り消すのに、`\|\c .B \-A-\c \&\|' を使えます。これはまた、既定義のマクロ全てを無効にします。 .TP .B \-dM プリプロセッサの結果を出力する代わりに、 プリプロセッサの実行中に定義された、既定義のものも含む全てのマクロの `\|\c .B #define\c \&\|' コマンドのリストを出力します。 これは、使用しているプリプロセッサのそのバージョンで、 どんなマクロが既定義であるかを知る方法を提供してくれます。 それには、空のファイル `\|\c .B foo.h\c \&\|' をこのオプションで処理してみればよいのです。 .sp .br touch\ foo.h;\ cpp\ \-dM\ foo.h .br .sp はすべての既定義マクロの値を見せてくれるでしょう。 .TP .B \-dD `\|\c .B \-dM\c \&\|' に似てますが、2 つの相違点があります。これは既定義マクロを 出力\c .I しません\c \&。また、`\|\c .B #define\c \&\|' コマンドとプリプロセス結果の\c .I 双方\c \& を出力します。これらの出力は両方とも標準出力に行われます。 .PP .TP .BR \-M\ [ \-MG ] プリプロセスの結果を出力する代わりに、main のソースファイルの依存性を 記述する\c .B make\c \& 規則を出力します。 プリプロセッサはソースファイルのオブジェクトファイル名、コロン、 そのすべてのインクルードファイル名から成る\c .B make\c \& 規則を出力します。複数のインクルードファイルがある場合、規則は`\|\c .B \\\\\c \&\|'-改行で複数行に区切られます。 `\|\c .B \-MG\c \&\|' は、見つけられなかったヘッダファイルは(コンパイルの途中で)生成され、 ソースファイルと同じディレクトリに存在するものとして扱います。`\|\c .B \-M\c \&\|' と共に指定しなければなりません。 この機能は自動的に Makefile を更新するのに使います。 .TP .BR \-MM\ [ \-MG ] これは `\|\c .B \-M\c \&\|' に似てますが、`\|\c .B #include "\c .I file\c \&"\c \&\|' でインクルードされるファイルのみを扱う点が異なります。`\|\c .B #include <\c .I file\c \&>\c \&\|' でインクルードされるシステムヘッダファイルは無視されます。 .TP .BI \-MD\ file これも `\|\c .B \-M\c \&\|' に似てますが、依存情報が`\|\c .I file\c \&\|' に書き出されます。\(em\&`\|\c .B \-MD\c \&\|' を指定したファイルの処理もこれに加えて行われ、`\|\c .B \-M\c \&\|' のように通常の処理を抑制することはありません。 gcc を実行する場合は `\|\c .I file\c \&\|' 引数を指定してはいけません。gcc は、入力ファイル名の末尾の `\|\c .B .c\c \&\|' を `\|\c .B .d\c \&\|' で置き換えたファイル名を出力に用いるからです。 Mach では、`\|\c .B make\c \&\|' コマンドで便利なように複数のファイルを 1 つの依存規則ファイルに まとめるユーティリティ \c .B md\c \& が利用できます。 .TP .BI \-MMD\ file `\|\c .B \-MD\c \&\|' に似てますが、ユーザのヘッダファイルのみを扱い、システムヘッダは 無視する点が異なります。 .TP .B \-H 通常の動作に加えて、 使用されたヘッダファイルのファイル名を出力します。 .TP .BI "\-imacros " "file"\c \& ファイル \c .I file\c \& を入力として処理しますが、 標準の入力ファイルを処理する前にその結果の出力を破棄します。 .I file\c \& によって生成される出力は捨てられるため、`\|\c .B \-imacros \c .I file\c \&\c \&\|' の処理結果の影響は、\c .I file\c \& 中に記述されたマクロがメインの入力ファイル中で使用可能になることだけです。 プリプロセッサは、`\|\c .B \-imacros\c .I file\c \&\|' を処理する前に、 コマンドラインから与えられた全ての `\|\c .B \-D\c \&\|' や `\|\c .B \-U\c \&\|' オプションを評価します。 .TP .BI "\-include " "file"\c \& ファイル \c .I file\c \& を、標準の入力ファイルの前に処理し、その結果出力をインクルードします。 .TP .BI "\-idirafter " "dir" ディレクトリ \c .I dir\c \& を第 2 インクルードパスに加えます。第 2 インクルードパス中の ディレクトリは、メインインクルードパス (オプション `\|\c .B \-I\c \&\|' によって追加されます) 中にヘッダファイルを探した結果 発見できなかった場合に検索されます。 .TP .BI "\-iprefix " "prefix" \c .I prefix\c \& を、その後に続く `\|\c .B \-iwithprefix\c \&\|' オプション用のプレフィックスとして使用します。 .TP .BI "\-iwithprefix " "dir" ディレクトリを第 2 インクルードパスに追加します。ディレクトリ名は \c .I prefix\c \& と \c .I dir\c \& を連結することによって得られます。ここで \c .I prefix は `\|\c .B \-iprefix\c \&\|' オプションによって指定されたものです。 .TP .B \-lang-c .TP .B \-lang-c++ .TP .B \-lang-objc .TP .B \-lang-objc++ ソースの言語を指定します。`\|\c .B \-lang-c++\c \&\|' は、プリプロセッサに C++ のコメント文と、C++ 用の追加の デフォルトインクルードディレクトリを処理させ、`\|\c .B \-lang-objc\c \&\|' は、Objective C の `\|\c .B #import\c \&\|' ディレクティブを使用可能にします。`\|\c .B \-lang-c\c \&\|' は明示的にこれらの機能の切り離しを指定し、`\|\c .B \-lang-objc++\c \&\|' は双方を利用可能にします。 これらのオプションはコンパイラドライバ \c .B gcc\c \& によって生成されますが、`\|\c .B gcc\c \&\|' のコマンドラインから引き渡すことはできません。 .TP .B \-lint コメント中に埋め込まれた、プログラムチェッカ \c .B lint\c \& のコマンドを見つけ出し、それらの前に `\|\c .B #pragma lint\c \&\|' を埋め込みます。例えば、コメント `\|\c .B /* NOTREACHED */\c \&\|' は `\|\c .B #pragma lint NOTREACHED\c \&\|' になります。 このオプションは直接 \c .B cpp\c \& を呼び出す場合にのみ使えます。\c .B gcc\c \& は、コマンドラインからこのオプションを引き渡しません。 .TP .B \-$ 識別子中での `\|\c .B $\c \&\|' の使用を禁止します。これは ANSI 規格からの要求です。 オプション `\|\c .B \-ansi\c \&\|' を指定した場合、\c .B gcc\c \& は自動的にこのオプションを設定します。が、\c .B gcc\c \& は `\|\c .B \-$\c \&\|' オプションそれ自身を認識しているわけではありません。 \(em\& `\|\c .B \-ansi\c \&\|' の他の効果を抜きにこれを使うには、 プリプロセッサを直接呼び出さねばなりません。 .SH 関連項目 .B info\c \&; .I The C Preprocessor\c , Richard M. Stallman. 中のエントリ .RB "`\|" cpp "\|'" .br .BR gcc "(" 1 ");" .B info\c \&; .I Using and Porting GNU CC (for version 2.0)\c , Richard M. Stallman. 中のエントリ .RB "`\|" gcc "\|'" -.SH 著作権表示 +.SH COPYING Copyright (c) 1991, 1992, 1993 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. .PP Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. .PP Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. diff --git a/ja_JP.eucJP/man/man1/crontab.1 b/ja_JP.eucJP/man/man1/crontab.1 index 02ac2503b0..b7fb30c27b 100644 --- a/ja_JP.eucJP/man/man1/crontab.1 +++ b/ja_JP.eucJP/man/man1/crontab.1 @@ -1,120 +1,120 @@ .\"/* Copyright 1988,1990,1993 by Paul Vixie .\" * All rights reserved .\" * .\" * Distribute freely, except: don't remove my name from the source or .\" * documentation (don't take credit for my work), mark your changes (don't .\" * get me blamed for your possible bugs), don't alter or remove this .\" * notice. May be sold if buildable source is provided to buyer. No .\" * warrantee of any kind, express or implied, is included with this .\" * software; use at your own risk, responsibility for damages (if any) to .\" * anyone resulting from the use of this software rests entirely with the .\" * user. .\" * .\" * Send bug reports, bug fixes, enhancements, requests, flames, etc., and .\" * I'll try to keep a version up to date. I can be reached as follows: .\" * Paul Vixie uunet!decwrl!vixie!paul .\" */ .\" .\" %Id: crontab.1,v 1.5 1998/03/23 08:21:29 charnier Exp % .\" jpman %Id: crontab.1,v 1.2 1997/04/18 06:38:25 yugawa Stab % .\" .Dd December 29, 1993 .Dt CRONTAB 1 .Os .Sh 名称 .Nm crontab .Nd 個人用の crontab の編集を行う (V3) .Sh 書式 .Nm crontab .Op Fl u Ar user .Ar file .Nm crontab .Op Fl u Ar user { .Fl l | .Fl r | .Fl e } .Sh 解説 .Nm crontab は、 Vixie Cron の .Xr cron 8 デーモンが扱うテーブル内のエントリの 追加、削除、およびリスト表示を行います。各ユーザは、自分用の crontab ファイルを持つことができます。このファイルは .Pa /var 内にありますが、 これはエディタで直接変更するためのものではありません。 .Pp もし .Pa allow ファイル .Pq Pa /var/cron/allow が存在した場合、このコマンドを 使うためには、あなたの名前がこの .Pa allow ファイルになければなりません。また、 .Pa allow ファイルは存在しないが .Pa deny ファイル .Pq Pa /var/cron/deny が存在した場合に、 このコマンドを使うためには、あなたの名前がこの .Pa deny ファイルにあっては .Em いけません 。 どちらのファイルも存在しない場合、サイト依存の設定パラメータにより スーパーユーザだけがこのコマンドを使うことができるか、 すべてのユーザがこのコマンドを使うことができるかが決定されます。 .Pp このコマンドの最初の書式は file から新しい crontab をインストールする 場合に使います。ファイル名として ``-'' が指定された時は、標準入力から 読み込みます。 .Pp 以下のオプションを使用可能です: .Bl -tag -width indent .It Fl u 指定した -ユーザ +user の crontab ファイルに対して操作を行います。 このオプションがない場合には、コマンドを実行した人 の crontab ファイルに対しての操作になります。 .Xr su 8 をしている場合は混乱する可能性がありますから、正確を期するため、この場合には .Fl u をつねにつけるようにすべきです。 .It Fl l 現在の crontab ファイルを標準出力に表示します。 .It Fl r 現在の crontab ファイルを削除します。 .It Fl e 現在の crontab を編集します。環境変数 .Ev VISUAL もしくは .Ev EDITOR があれば、この環境変数で指定したエディタを利用します。 エディタを終了すれば、crontab ファイルが自動的にインストールされます。 .El .Sh 関連項目 .Xr crontab 5 , .Xr cron 8 .Sh 関連ファイル .Bl -tag -width /var/cron/allow -compact .It Pa /var/cron/allow .It Pa /var/cron/deny .El .Sh 規格 .Nm コマンドは .St -p1003.2 準拠です。 この新しい文法は以前の Vixie Cron のものとも 古典的な SVR3 のものとも異なっています。 .Sh 診断 誤ったコマンドラインを与えて実行した場合、 使用法についてのかなり有益なメッセージが出力されます。 .Sh 作者 .An Paul Vixie Aq paul@vix.com diff --git a/ja_JP.eucJP/man/man1/ctm.1 b/ja_JP.eucJP/man/man1/ctm.1 index d48c222fe5..3fe873429b 100644 --- a/ja_JP.eucJP/man/man1/ctm.1 +++ b/ja_JP.eucJP/man/man1/ctm.1 @@ -1,315 +1,315 @@ .\"---------------------------------------------------------------------------- .\""THE BEER-WARE LICENSE" (Revision 42): .\" wrote this file. As long as you retain this notice you .\"can do whatever you want with this stuff. If we meet some day, and you think .\"this stuff is worth it, you can buy me a beer in return. Joerg Wunsch .\"---------------------------------------------------------------------------- .\" .\" This manual page is partially obtained from Poul-Hennings CTM README .\" file. .\" .\" CTM and ctm(1) by .\" .\" %Id: ctm.1,v 1.14 1998/04/20 20:57:16 rnordier Exp % .\" jpman %Id: ctm.1,v 1.3 1997/09/27 16:26:57 ryo2 Stab % .\" .Dd Mar 25, 1995 .Os .Dt CTM 1 .Sh 名称 .Nm ctm .Nd ソースコードをミラーするプログラム .Sh 書式 .Nm ctm .Op Fl cFklquv .Op Fl b Ar basedir .Op Fl B Ar backup-file .Op Fl e Ar include-regex .Op Fl t Ar tar-command .Op Fl T Ar tmpdir .Op Fl V Ar level .Op Fl x Ar exclude-regex .Ar .Sh 解説 .Nm は、元々 .Dq Cvs Through eMail でしたが、今は代わりに .Dq Current Through eMail と呼ぶのがふさわしいようです。 .Nm は、今や 2 つのバージョンのディレクトリツリーの間でデルタを作成して 適用するための最も信頼できる方法を意味します。 これにはデルタの作成と適用という 2 つの部分があります。2 つは 全く異なるものです。 .Ss 使用例 CTM デルタを適用するには、それを .Nm コマンドに渡します。CTM デルタを標準入力、またはファイル名を引数として 渡すことができます。後者の方法を取ると、とても簡単に することができます。なぜなら このプログラムは gzip で圧縮された ファイルを受け付けて、ファイルの一時的なコピーを作る必要が無いからです。 複数のデルタを一度に指定でき、それらは一度にひとつずつ処理されます。 すでに適用されているデルタは無視されます。 .Nm コマンドの実行はたくさんのパスにわかれています。 次のパスを始める前に、それぞれのパスで入力ファイルの全体が処理されます。 .Ar name で指定されたファイルを処理する前に .Nm は まず .Ar name.ctm というファイルが存在するかどうかをチェックします。 存在すれば、 .Nm は、かわりにそちらを処理します。 パス 1 では、入力ファイルが正常かどうかを確認します。 文法、データ、全体の MD5 によるチェックサムがチェックされます。 いずれか 1 つでも異常があれば、 .Nm は単純に入力ファイルを拒否します。 パス 2 ではディレクトリツリーが CTM デルタの期待している状態に なっているかどうかを確認します。これは存在する/しないはずの ファイルとディレクトリファイルとディレクトリを捜して ファイルの MD5 によるチェックサムをチェックすることで行われます。 もし .Ar backup-file が .Fl B オプションで指定されていると、その .Nm の呼び出しで変更されるファイルが .Fl t オプションで指定されたアーカイバコマンドを使って、そのファイルに バックアップされます。デフォルトのアーカイバコマンドは .Nm "tar -rf %s -T -" です。 パス 3 では実際にデルタが適用されます。 .Nm によって変更されるファイルのリストは、 .Fl e と .Fl x オプションで指定された正規表現によるフィルタの対象になります。 .Fl e と .Fl x オプションは、コマンドラインで指定された順に適用されます。 与えられたファイル名に最後にマッチしたフィルタが、そのファイルを .Nm の適用対象とするかどうかを決定します。 .Nm は、その作業ディレクトリ下にファイルの階層を展開します。 絶対パスや .Sq \&. と .Sq \&.\&. の参照を含むファイル名は、セキュリティのために明確に禁止されています。 .Ss オプション .Bl -tag -width indent -compact .It Fl b Ar basedir 各ファイル名に .Ar basedir で指定されたパスを前置します。 .It Fl B Ar backup-file この CTM の実行で変更されるすべてのファイルを .Ar backup-file にバックアップします。 .Fl e と .Fl x オプションで何らかのフィルタが指定されると、 CTM の実行時にフィルタが適用され、変更されたファイルが、 最終的にバックアップされるファイルのセットとなります。 .It Fl c 確認だけを行ない、他には何もしません。 .It Fl e Ar regular_expression CTM ファイル中の各ファイル名が .Ar regular_expression にマッチするかどうかを調べ、マッチすればそのファイルを処理し、 マッチしなければ何もせずそのまま残します。 このオプションは何個でも指定できます。このオプションを指定すると .Pa .ctm_status のシーケンス番号のチェックが行なわれません。 例えば、 .Ic ^usr.sbin/ctm と指定すると、 .Nm usr.sbin/ctm というソースディレクトリと、その下のすべてのパス名を指定した事に なります。 CTM の処理対象からパス名を外すには .Fl x オプションを使います。 .It Fl F 強行します。 .It Fl k ファイルとディレクトリを保存し、CTM ファイルで削除するように 指定されているものでも削除しません。 .Fl B オプションが指定されると、そのファイルとディレクトリは バックアップされません。 .It Fl l その CTM の実行で変更されるはずのファイルと、それに対して 行われるアクションをリストします。 .Fl l オプションを使うと .Pa .ctm_status のチェックと作業対象のソースツリーの正当性チェックが行なわれません。 .Fl l オプションは、 .Fl e と .Fl x オプションを組み合わせることで、与えるコマンドラインオプションで どのファイルが変更されるかを見定めることができます。 .It Fl q 表示を減らします。 .It Fl t Ar tar-command デフォルトのアーカイバである .Nm tar の代わりに .Ar tar-command を使います。 このオプションは、バックアップファイルが .Fl B オプションで指定された場合にのみ効果があります。 tar command 中には一つだけ %s を置くことができ、 バックアップファイルの名前に置き換えられます。 .It Fl T Ar tmpdir 一時ファイルを .Ar tmpdir に置きます。 .It Fl u 作成、変更されるファイルの更新時刻を CTM デルタが作成された 時刻に設定します。 .It Fl v 表示を増やします。 .It Fl V Ar level 表示を増やします。 .Ar level は饒舌さの程度です。 .It Fl x Ar regular_expression CTM ファイル中の各ファイル名を .Ar regular_expression とマッチするかどうかを調べ、マッチすればそのファイルを除外します。 このオプションは何個でも指定できます。このオプションを指定すると .Pa .ctm_status のシーケンス番号のチェックが行なわれません。 CTM の処理対象にパス名を加えるには .Fl e オプションを使います。 .El .Sh 環境変数 .Ev TMPDIR にパス名がセットされていると、ctm は一時ファイルの置き場所として そのパス名を使います。 これに関しての詳細は .Xr tempnam 3 を参照して下さい。 同じ効果は .Fl T フラグでも得られます。 .Sh 関連ファイル .Pa .ctm_status には、最後に適用した CTM デルタのシーケンス番号が含まれます。 このファイルを変更したり削除したりすると、 .Nm は、とても混乱します。 .Fl e と .Fl x オプションを使うとソースツリーの一部分を更新することができ、 ソースを一貫性のない状態にすることになります。 これらのオプションを使うときには、何をしているのかを理解していることが 仮定されています。 .Sh 使用例 .Bd -literal cd ~cvs /usr/sbin/ctm ~ctm/cvs-* .Ed `lib' 以下のすべてのソースを取り出してパッチを当てるには 以下のようにします。 .Bd -literal cd ~/lib-srcs /usr/sbin/ctm -e '^lib' ~ctm/src-cur* .Ed .Sh 診断 充分に説明的であるはずの沢山のメッセージが出力されます。 .Dq ノイズレベル は .Fl q , .Fl v , .Fl V オプションで調整できます。 .Sh 関連項目 .Xr ctm_rmail 1 , .Xr ctm 5 .Sh 歴史 最初の試みは -.Xx 1.1.5 +.Fx 1.1.5 の作業中に行われました。そして、たくさんの バグと手法について徹底的に議論されました。 .Nm コマンドは .Fx 2.1 から登場しました。 .Sh 作者 CTM システムは .An Poul-Henning Kamp Aq phk@FreeBSD.org によってデザインされ実装されました。 このマニュアルページは .An Joerg Wunsch Aq joerg@FreeBSD.org が書きました。 .Sh 日本語訳 野首 寛高(h-nokubi@nmit.mt.nec.co.jp): FreeBSD 用に翻訳 diff --git a/ja_JP.eucJP/man/man1/error.1 b/ja_JP.eucJP/man/man1/error.1 index bcafbc005b..bf5ec76e90 100644 --- a/ja_JP.eucJP/man/man1/error.1 +++ b/ja_JP.eucJP/man/man1/error.1 @@ -1,301 +1,301 @@ .\" Copyright (c) 1980, 1990 The Regents of the University of California. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)error.1 8.1 (Berkeley) 6/6/93 .\" jpman %Id: error.1,v 1.2 1997/03/29 02:29:02 horikawa Stab % .\" .Dd June 6, 1993 .Dt ERROR 1 .Os BSD 4 .Sh 名称 .Nm error .Nd コンパイラのエラーメッセージを解析する .Sh 書式 .Nm error .Op Fl n .Op Fl s .Op Fl q .Op Fl v .Op Fl t Ar suffixlist .Op Fl I Ar ignorefile .Op name .Sh 解説 .Nm は、エラーメッセージの解析を行ない、 多くのコンパイラや言語処理系で生成されたエラーメッセージを、 ソースファイル上で実際にエラーが発生した場所に配置させます。 このコマンドは、紙の上にエラーを適当に省略してメモするという 骨のおれる古臭い作業に代わるもので、 スクリーンエディタのマルチウィンドウ機能の助けなしで エラーメッセージとソースコードを一緒に眺められるようにします。 .Pp 本コマンドで使用可能なオプションは以下の通りです: .Bl -tag -width indent .It Fl n 一切のファイルの書き換え (touch) を .Em しません。 すべてのエラーメッセージは、 標準出力に送られます。 .It Fl q ユーザにファイルの書き換えをするかどうかを尋ねます。質問に対して ``y'' か ``n'' を答えないと処理を継続できません。 .Fl q オプションを指定しない場合には、参照された全てのファイル (捨ててしまったエラーメッセージだけが参照していたものを除く) は書き換えの対象になります。 .It Fl v 全てのファイルの書き換えが終った後で、エディタ .Xr \&vi 1 を起動し、書き換えたすべてのファイルの編集を準備します。そして、 書き換えた最初のファイルの最初のエラーのところに位置あわせをします。 .Xr \&vi 1 が見つからない場合には、かわりに .Xr \&ex 1 もしくは .Xr \&ed 1 を通常の場所から起動します。 .It Fl t スイッチに続いて指定された引数をサフィックスリストとして取得します。 サフィックスリストにないサフィックスを持つファイルは、本コマンドに よる書き換えの対象となりません。 -サフィクスリストにはサフィクスをドットで区切って並べて下さい。 +サフィックスリストにはサフィックスをドットで区切って並べて下さい。 また、``*'' によるワイルドカード指定も有効です。 例えば、以下に示すようなサフィックスリスト .Pp .Dl ".c.y.foo*.h" .Pp は、 .Nm コマンドが ``.c'', ``.y'', ``.foo*'', ``.h'' のいずれかのサフィックス で終了するファイル名のファイルを書き換えることを許可していることを意味します。 .It Fl s エラーのカテゴリ別の統計情報を出力します。 あまり役に立つものではありません。 .It Fl I .Pa ~/.errorrc の代わりに使うファイル名を指定します。 .El .Pp .Nm コマンドは、 .Ar name で指定したファイルから読み込まれた、もしくは標準入力から送られたエラー メッセージを見て、 それぞれのエラーメッセージを吐き出した言語処理系の判定を試みます。 そして各エラーメッセージが参照しているソースファイルと行番号を決定し、 無視してよいエラーメッセージかどうかを判定した後で、 対応するソースプログラムのファイルの当該エラーが参照している行の直前に (少し変更した)エラーメッセージをコメントの形で挿入します。 言語処理系や内容によるカテゴリ分けが出来ないエラーメッセージは、 いかなるファイルにも挿入されずに、標準出力に送られます。 .Nm は、全ての入力を読み終わった後でしかソースファイルを書き換えません。 .Pp .Nm コマンドは、標準入力をパイプを経由して、 エラーメッセージを吐き出すプログラムにつないで使うことを想定しています。 言語処理系の中には、エラーメッセージを標準エラーに出すものもあれば、 標準出力に出すものもあります。 したがって、両方のエラーの出力先を、ともにパイプによって .Nm コマンドに送ったほうがよいでしょう。 例えば、 .Xr csh 1 を使用した場合の書式では、 .Pp .Dl make \-s lint \&| error \-q \-v .Pp のようになります。こうすれば、 .Xr make 1 を用いてターゲット lint をメイクしたときに、 どんなプログラムが実行されたとしても、全てのエラーを解析する ことができるでしょう。 .Pp .Nm は、 .Xr make 1 , .Xr \&cc 1 , .Xr cpp 1 , .Xr ccom 1 , .Xr \&as 1 , .Xr \&ld 1 , .Xr lint 1 , .Xr \&pi 1 , .Xr \&pc 1 , .Xr f77 1 , .Em DEC Western Research Modula\-2 の各処理系で生成されたエラーメッセージを解析することが出来ます。 .Nm コマンドは、言語プロセッサによって生成されるエラーメッセージの標準形式を 内部に持っているため、その形式の変更には敏感です。 .Em Pascal を除く全ての処理系では、エラーメッセージは1行に制限されています。 また、エラーメッセージの中には、複数のファイルの複数の行を参照する ものがあります。 .Nm コマンドはエラーメッセージを複製し、そのエラーメッセージの参照する全ての行に 対して情報を付加します。 .Pp .Nm コマンドは、 それぞれのエラーメッセージに対して以下の6つの動作のうち1つを行ないます。 .Bl -tag -width Em 同期 (synchronize) .It Em 同期 (synchronize) 言語処理系の中には、どのファイルを現在処理しているかについて短い メッセージを生成するものがあります。 .Nm コマンドは、この情報を用いて、それぞれのエラーメッセージに ファイル名を含めないような言語についてのファイル名を判定します。 これらの同期メッセージは、 .Nm コマンドによって使われ、出力されることはありません。 .It Em 捨てる (discard) 以下の2つの .Xr lint 1 ライブラリ、 .Pa /usr/libdata/lint/llib-lc および .Pa /usr/libdata/lint/llib-port のうち、どちらか一方を参照する .Xr lint 1 からのエラーメッセージは捨てます。 これは、誤ってこれらのライブラリを書き換えることがないようにするためです。 ここでもこれらのエラーメッセージは、 .Nm コマンドによって使われ、出力されることはありません。 .It Em 無効化 (nullify) 特定の関数に対する .Xr lint 1 からのエラーメッセージのうち、すでに出ることが分かっていて必要のない情報は、 無効化することができます。 無効化されたエラーメッセージは、ソースファイルには挿入されず、 標準出力へ送られます。 無視される関数名は、ユーザのホームディレクトリ配下の .Pa .errorrc ファイルもしくは .Fl I オプションによって名前を指定したファイルのどちらかによって与えます。 このファイルが存在しない場合には、どのエラーメッセージも無効化されません。 ファイルが存在する場合には、関数名は1行に1つずつ記述しなければなりません。 .It Em ファイルと関連しない (not file specific) 読み方がわからないエラーメッセージはひとまとめにされ、 ファイルを書き換える 前に標準出力に送られます。 これらのエラーメッセージは、どのソースファイルにも挿入されません。 .It Em ファイルと関連 (file specific) 特定のファイルを参照するが、 特定の行を参照しないエラーメッセージについては、 そのファイルの書き換えを行なう時に標準出力に送られます。 .It Em 確かなエラー (true errors) その他の、読み方がわかるエラーメッセージは、 そのエラーメッセージの参照するファイル への挿入の候補となります。 .El .Pp 確かなエラーメッセージのみファイル挿入の候補とされます。 他のエラーメッセージは、全て .Nm コマンドによって処理されるか、あるいは標準出力 に対して送られます。 .Nm コマンドは、エラーメッセージをソースファイル上のエラー 行の直前の行に挿入します。 各エラーメッセージは、各言語の 1 行のコメントの形に変形されます。 そして、エラーの先頭に文字列 ``###'' を、エラーの最後尾に 文字列 ``%%%'' を付加して、内部的な印をつけます。 これにより、エディタを用いたエラーのパターン検索が簡単になり、 挿入されたメッセージを取り除くのも簡単になります。 加えて、各エラーメッセージは、 そのエラーメッセージが参照する行のソース上の行番号を含んでいます。 きちんとした形式に整えられたソースプログラムは、 挿入されたメッセージを削除しなくとも、 それらのエラーメッセージが深刻なエラーを起こすことなく再コンパイルが可能です。 しかし、C や Pascal のように自由形式で記述が可能な言語で、 なおかつソースプログラムの形式がきちんと整っていない場合には、 コメントの中にコメントが入ってしまうことが考えられます。 すると、後のコンパイル時に何らかの不具合が生じることが十分考えられます。 このことを回避するためには、 複数の行からなるコメントとプログラムの実体が同じ行にあるようなプログラムでは、 コメントの前にプログラム言語の文が現れるようにしてください。 .Pp .Nm コマンドは、インタラプトシグナルおよびターミネートシグナルを受け取ります。 シグナルを受けたのがコメントを挿入する段階だった場合には、 実行中の操作を整然と終了します。 .Sh 関連ファイル .Bl -tag -width ~/.errorrc -compact .It Pa ~/.errorrc .Xr lint 1 のエラーメッセージを無視する関数名 .It Pa /dev/tty ユーザの端末 .El .Sh 歴史 .Nm コマンドは、 .Bx 4.0 にて初めて実装されました。 .Sh 作者 .An Robert Henry .Sh バグ .Pp ユーザに問い合わせを行なうために、端末ファイルを直接オープンします。 .Pp ハードリンクされたソースファイルについては、 他とリンクされない新しい複製を作ります。 他のリンクファイルにはその結果が反映されません。 .Pp 言語処理系のエラーメッセージの形式が変更された場合、 .Nm コマンドにはそのエラーメッセージが理解できなくなるかもしれません。 .Pp .Nm コマンドは 全く機械的に処理を行うため、 1つのつまらない文法上のエラーが原因で引き起こされる `水門の決壊 (floodgating)' により派生した後続のエラーをふるい落としません。 この種のエラーを無視することは、人間の方がずっと得意です。 .Pp Pascal のエラーメッセージは、本来はエラー行の後ろに来るべきです。 ( .Nm コマンドは、エラー行の前にエラーメッセージを置きますが。) また、エラーのある位置を示す `\\' の配置が .Nm コマンドによって乱れてしまいます。 .Pp .Nm コマンドは、適度に高速に表示される .Tn CRT を見つつ仕事を行うのに適したように設計されています。 遅い速度の端末を見ながら作業するのにはいささか不都合です。 まして、ハードコピー端末で使った人はいません。 diff --git a/ja_JP.eucJP/man/man1/file.1 b/ja_JP.eucJP/man/man1/file.1 index 221a500e9f..05eec2f140 100644 --- a/ja_JP.eucJP/man/man1/file.1 +++ b/ja_JP.eucJP/man/man1/file.1 @@ -1,405 +1,405 @@ .\" %Id: file.1,v 1.12 1998/03/23 07:43:13 charnier Exp % .Dd July 30, 1997 .Dt FILE 1 "Copyright but distributable" .Os .Sh 名称 .Nm file .Nd ファイルの種類を判定する .Sh 書式 .Nm file .Op Fl vczL .Op Fl f Ar namefile .Op Fl m Ar magicfiles .Ar .Sh 解説 このマニュアルは .Nm コマンドのバージョン 3.22 について記載しています。 .Nm は、namefile で指定されたファイルの種類を判定するプログラムです。判定の ために、ファイルシステムテスト、マジックナンバテスト、言語テストの 3 つのテストをこの順に実行し、 .Em 最初に 判定できた結果からファイルの種類を表示します。 .Pp ファイルの種類として表示されるのは、 .Em text ( .Tn ASCII キャラクタだけのファイルで、 .Tn ASCII 端末に表示した場合、 問題が起こらないもの)、 .Em executable ( .Ux カーネル等に理解可能な形にコンパイルされたプログラムを 含むファイル)、その他のものを意味する .Em data (data は、通常 `バイナリ' か表示不能なもの) のうちの 1 つです。 例外は、内部フォーマットがよく知られた、 バイナリデータを含むファイル (コアファイルや tar アーカイブ) です。 ファイル .Pa /usr/share/misc/magic やプログラムそのものを変更するときは、 .Em "これらのキーワードを残して下さい" 。 .Pp ディレクトリ内のすべての可読なファイルは、 単語 ``text'' を表示することが期待されています。 Berkeley で行われたように、``shell commands text'' を ``shell script'' と変更するようなことはしないで下さい。 .Pp ファイルシステムテストは、 .Xr stat 2 システムコールからの戻り値を調べることに基づいています。 このプログラムは、ファイルが空であるかどうか、ある種の 特殊ファイルであるかどうかを調べます。 使っているシステムに合った既知のファイルの種類 (システムに実装されたソケット、シンボリックリンク、 名前付きパイプ (FIFO)) は、システムヘッダファイル .Pa sys/stat.h で定義されていれば表示されます。 .Pp マジックナンバテストは、ファイルが固定フォーマットのデータであるか どうかをチェックするために使われます。 よい例が、実行可能なバイナリ実行形式 (コンパイルされたプログラム) .Pa a.out ファイルです。このフォーマットは標準インクルードディレクトリ内の .Pa a.out.h や場合により .Pa exec.h で定義されています。 実行ファイルは、 ファイルの先頭近くの特定の場所に、`マジックナンバ' を持ちます。 これは .Ux オペレーティングシステムに対し、 ファイルがバイナリ実行形式であり、 どのタイプの実行可能ファイルであるかを知らせます。 `マジックナンバ' の概念は拡張され、データファイルにも適用されています。 ファイルの先頭に近い固定位置に固定識別子があるファイルは、 このように記述できます。 これらのファイルの情報は、マジックファイル .Pa /usr/share/misc/magic から読み込まれます。 .Pp もしファイルが .Tn ASCII ファイルのようであるなら、 .Nm は、その言語を推定しようとします。 言語テストは、ファイルの始めの数ブロックに 特定の文字列 ( .Pa Inames.h を参照) があるかどうかを探します。たとえばキーワード .Em .br があればそれはおそらく .Xr troff 1 の入力ファイルであり、 .Em struct というキーワードは、C 言語のプログラムであることを示しています。 こうした推定方法は、前述の 2 つのテストより信頼性が低いため、 最後に行われます。言語テストルーチンは ( .Xr tar 1 アーカイブのような) その他のファイルもチェックし、未知のファイルを `ascii text' とすべきか、 `data' とすべきかを決定します。 .Sh オプション .Bl -tag -width indent .It Fl v プログラムのバージョンを表示して、終了します。 .It Fl m Ar list マジックナンバを含む別のファイルの .Ar list を指定します。 これは、1 つのファイルか、コロン (:) で分けられたファイルのリストです。 .It Fl z compress で圧縮されたファイルの中身を見ようとします。 .It Fl c マジックファイルを解析した形式を、調査できるように表示します。 通常、 新しいマジックナンバファイルを使う前にデバッグするために、 -.It Fl m +.Fl m オプションとともに用います。 .It Fl f Ar namefile 引数の前に .Ar name_file から調べるべきファイル名を (1 行に 1 つ) 読み込みます。 .Ar name_file もしくは引数の filename は少なくとも 1 つは指定しなければなりません。 標準入力のファイルの種類を判定させる場合は、 ファイル名として、``-'' を指定します。 .It Fl L オプションは(システムがシンボリックリンクを提供していれば)、 .Xr ls 1 コマンドの .Fl L オプションと同様にシンボリックリンクをたどって実際のファイルの中 身の種類を判定します。 .El .Sh 関連ファイル .Bl -tag -width /usr/share/misc/magic -compact .It Pa /usr/share/misc/magic デフォルトのマジックナンバのリスト (以前のバージョンの .Bx Free では .Pa /etc/magic でした) .El .Sh 環境変数 環境変数 .Em MAGIC は、デフォルトのマジックナンバファイルを指定するために 使うことができます。 .Sh 関連項目 .Xr od 1 , .Xr strings 1 , .Xr magic 5 .Sh 標準適合性 このプログラムは、その中に含まれる曖昧な言語をできるだけ特定できる ようになっており、 System V の FILE(CMD) で定義されるインタフェースを越えているはずです。 同名の System V のプログラムと、ほとんど動作は同じです。 しかし、このバージョンはより多くのマジックを知っているので、多くの場合に 異なった (より正確な) 出力を出します。 .Pp このバージョンと System V のものとの大きな違いは、 このバージョンは全ての空白を区切り文字として扱うため パターン内の空白はエスケープしなければならないということです。 たとえば、 .br >10 string language impress\ (imPRESS data) .br とマジックファイルに書かれていた場合は、次のように 変更せねばなりません。 .br >10 string language\e impress (imPRESS data) .br またこのバージョンでは、バックスラッシュを含んでいる パターンもエスケープしなくてはいけません。たとえば、 .br 0 string \ebegindata Andrew Toolkit document .br とマジックファイルに書かれていた場合は、次のように 変更せねばなりません。 .br 0 string \e\ebegindata Andrew Toolkit document .br .Pp Sun Microsystems の SunOS リリース 3.2 もしくはそれ以降には、 System V 由来の .Xr file 1 コマンドが含まれていますが、拡張がなされています。 このバージョンは SUN のものとは、細かい点でしか異なりません。 このバージョンには `&' 演算子の拡張が含まれています。 使い方は、次のようなものです。 .br >16 long&0x7fffffff >0 not stripped .Sh マジックディレクトリ マジックファイルのエントリは様々なソース (主に USENET) から集められたり、様々な作者から提供されました。 .An Chirstos Zoulas (下記のアドレス) が、 マジックファイルエントリをさらに集めたり訂正するでしょう。 統合したマジックファイルエントリは、定期的に配布されるでしょう。 .Pp マジックファイルにおけるエントリの順序は 重要です。 使っているシステムによって、エントリの順序が正しくなくなることが あります。 もし、あなたの古い .Nm コマンドがマジックファイルを使っているのなら、 比較のため古いマジックファイルを保存して下さい (たとえば、 .Pa /usr/share/misc/magic.orig という名前に変更します) 。 .Sh 歴史 .Nm コマンドは、少なくとも Research Version 6 (マニュアルページの日付は、1975 年 1 月) からはどの .Ux にもありました。 System V バージョンはある重要な変更、 すなわち外部マジックナンバリストを導入しました。 これによってプログラムのスピードはわずかに低下しましたが、 更にまた柔軟になりました。 .Pp このプログラムは、System V バージョンを基づいており、 .An Ian Darwin によって、他の誰かのソースコードを見ることなく 書かれました。 .Pp .An John Gilmore はコードを拡張し、最初の版よりも よいものにしました。 .An Geoff Collyer は 不適当なところが数箇所あるのを 発見し、いくつかマジックファイルエントリを 提供しました。 プログラムは、ずっと発展し続けています。 .SH 作者 .An Ian F. Darwin Aq ian@sq.com , UUCP アドレス {utzoo | ihnp4}!darwin!ian, 住所 P.O. Box 603, Station F, Toronto, Ontario, CANADA M4Y 2L8. により書かれました。 .Pp .An Rob McMahon Aq cudcv@warwick.ac.uk が 1989 年に、`&' 演算子を単純な `x&y != 0' から `x&y op z' に拡張するため変更しました。 .Pp .An Guy Harris Aq guy@auspex.com が 1993 年に、 .Bl -item -offset indent .It ``旧型'' の `&' 演算子を元のように戻しました。理由は、 .Bl -enum -offset indent .It Rob McMahon の変更によりこれまでの使用法ができなくなった。 .It このバージョンの .Nm がサポートする SunOS の ``新型'' の `&' 演算子で、`x&y op z' も扱える。 .It Rob の変更はドキュメントに書かれていなかった。 .El .It 他段階の `>' 追加。 .It ``beshort'', ``leshort'' などのキーワードの追加。 .Nm が動いているプロセスのバイトオーダではなく、 ファイル特有のバイトオーダで数字を見るようにするキーワードです。 .El .Pp .An Ian Darwin や .An Christos Zoulas Aq christos@deshaw.com を含む 多くの作者による 1990-1992 年の変更。 .Sh 法律上の注意 Copyright (c) Ian F. Darwin, Toronto, Canada, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993. .Pp This software is not subject to and may not be made subject to any license of the American Telephone and Telegraph Company, Sun Microsystems Inc., Digital Equipment Inc., Lotus Development Inc., the Regents of the University of California, The X Consortium or MIT, or The Free Software Foundation. .Pp This software is not subject to any export provision of the United States Department of Commerce, and may be exported to any country or planet. .Pp Permission is granted to anyone to use this software for any purpose on any computer system, and to alter it and redistribute it freely, subject to the following restrictions: .Pp .Bl -enum -offset indent .It The author is not responsible for the consequences of use of this software, no matter how awful, even if they arise from flaws in it; .It The origin of this software must not be misrepresented, either by explicit claim or by omission. Since few users ever read sources, credits must appear in the documentation; .It Altered versions must be plainly marked as such, and must not be misrepresented as being the original software. Since few users ever read sources, credits must appear in the documentation; .It This notice may not be removed or altered. .El .Pp A few support files ( .Fn getopt , .Fn strtok ) distributed with this package are in the public domain; they are so marked. .Pp The files .Pa tar.h and .Pa is_tar.c were written by .An John Gilmore from his public-domain .Nm tar program, and are not covered by the above restrictions. .Sh バグ マジックディレクトリから マジックファイルを自動的に作成するよりよい方法があるはずです。 それは何なのでしょうか。より起動を速くするため マジックファイルをバイナリにコンパイルするとよいでしょう。 (たとえば .Xr ndbm 3 あるいは、異機種ネットワーク環境では固定長の .Tn ASCII 文字)。 そうすれば、同名の バージョン 7 のプログラムと同じぐらいの速さで System V バージョンの柔軟性を持ったプログラムとなるでしょう。 .Pp .Nm には、正確さよりも 速度を重視したアルゴリズムが いくつかあるので .Tn ASCII ファイルの内容については 間違うことがあります。 .Pp .Tn ASCII ファイルのサポート ( 元々はプログラミング言語のため ) は 単純で、不十分であり、更新には再コンパイルが必要です。 .Pp 複数の行に渡るものをサポートするため ``else'' 項があるべきです。 .Pp マジックファイルと キーワードの正規表現を サポートするべきです。 .Tn ASCII TAB をフィールドの識別子にすることは醜く、 ファイルの編集を難しくしていますが、残されています。 .Pp キーワードに大文字を許すことが勧められます。たとえば、 .Xr troff 1 コマンドと man page マクロの区別です。 正規表現のサポートで、このことは簡単になるでしょう。 .Pp \s-2FORTRAN\s0 に対してプログラムが働きません。 行の先頭にインデントされているキーワードを見ることにより \s-2FORTRAN\s0 だと判別すべきです。 正規表現のサポートによりこれは簡単になるでしょう。 .Pp .Em ascmagic に入っている キーワードのリストは、おそらくマジックファイルに 入れるべきものです。 これはオフセットの値として `*' のようなキーワードを 使うことで可能でしょう。 .Pp 最初の文字、最初の語、最初の long などに関する テストを 最初に読み込んだときに全て行うことができるよう マジックファイルを並べ直す最適化法はないだろうか。 マジックファイルの矛盾について述べるようにならないか。 エントリーの順序を マジックファイル上の位置ではなく、 ファイルオフセット順にすることはできないだろうか。 .Pp プログラムは、推定が「どれぐらいよい」のかを知る方法を 提供すべきです。ファイルの最初の 5 文字が ``From '' であるときに推測をしても、 ``Newsgroups:'' や "Return-Path:" といった文字による推測ほどよくはないので、推測結果を 捨てることになります。しかし、もしそういった文字が 現れなければ最初の推定を使わなければなりません。 .Pp このプログラムは、いくつかの商用の .Nm コマンドより遅いです。 .Pp このマニュアルページ、特にこの節が長過ぎます。 .Sh 入手性 オリジナル作者の最新のバージョンを anonymous FTP で、 .Em ftp.deshaw.com の .Pa /pub/file/file-X.YY.tar.gz から手に入れることができます。 diff --git a/ja_JP.eucJP/man/man1/groff.1 b/ja_JP.eucJP/man/man1/groff.1 index 7d11cb26f8..82cae6ef00 100644 --- a/ja_JP.eucJP/man/man1/groff.1 +++ b/ja_JP.eucJP/man/man1/groff.1 @@ -1,412 +1,412 @@ .ig \"-*- nroff -*- Copyright (C) 1989-1995 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. .. .\" jpman %Id: groff.1,v 1.2 1997/05/13 16:13:14 horikawa Stab % .de TQ .br .ns .TP \\$1 .. .\" Like TP, but if specified indent is more than half .\" the current line-length - indent, use the default indent. .de Tp .ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP .el .TP "\\$1" .. .TH GROFF 1 "8 September 1996" "Groff Version 1.10" .SH 名称 groff \- groff ドキュメントフォーマットシステムのフロントエンド .SH 書式 .B groff [ .B \-tpeszaivhblCENRSVXZ ] [ .BI \-w name ] [ .BI \-W name ] [ .BI \-m name ] [ .BI \-F dir ] [ .BI \-T dev ] [ .BI \-f fam ] [ .BI \-M dir ] [ .BI \-d cs ] [ .BI \-r cn ] [ .BI \-n num ] [ .BI \-o list ] [ .BI \-P arg ] [ .IR files \|.\|.\|.\| ] .SH 解説 .B groff は、groff ドキュメントフォーマットシステムのフロントエンドプログラムです。通常 .B groff は .B troff を実行し、その出力を指定されたデバイスで扱うための 後処理プログラムを実行します。利用可能なデバイスは以下のとおりです: .TP .B ps PostScript プリンタやプレビュア .TP .B dvi TeX の dvi フォーマット .TP .B X75 75 dpi の X11 プレビュア .TP .B X100 100 dpi の X11 プレビュア .TP .B ascii タイプライタに似た特性を持つデバイス .TP .B latin1 ISO Latin-1 文字集合を利用するタイプライタに似た特性を持つデバイス .TP .B koi8-r ロシア語 KOI8-R 文字集合を利用するタイプライタに似た特性を持つデバイス .LP 指定されたデバイス用の後処理を行うプログラムは、デバイス記述ファイルの .B postpro コマンドにより指定されています。これは .B \-X オプションにより変更できます。 .LP デフォルトのデバイスは .B ps です。 .BR pic , .BR eqn , .BR tbl , .BR refer , .B soelim の任意の前処理を行わせることもできます。 .LP 引数を伴わないオプションは .B \- のあとにまとめて続けることができます。 ファイル名のかわりに用いられる .B \- は標準入力を意味します。 .LP .B grog コマンドを用いてドキュメントを正しくフォーマットするための .B groff コマンドを調べることができます。 .SH オプション .TP .B \-h ヘルプメッセージを表示します。 .TP .B \-e .B eqn を使って前処理を行います。 .TP .B \-t .B tbl を使って前処理を行います。 .TP .B \-p .B pic を使って前処理を行います。 .TP .B \-s .B soelim を使って前処理を行います。 .TP .B \-R .B refer を使って前処理を行います。 .B refer に引数を渡す機構は用意されていません。 .B refer のほとんどのオプションは、ファイル中に記述することができる等価なコマンドを 備えているからです。詳しくは .BR refer (1) のマニュアルを参照してください。 .TP .B \-v .B groff から起動されるプログラムのバージョン番号を表示します。 .TP .B \-V 実行しないで、 .B groff で実行される処理内容を標準出力に表示します。 .TP .B \-z .B troff からの出力を捨てます。エラーメッセージのみが表示されます。 .TP .B \-Z .B troff からの出力を後処理しません。通常 .B groff は、自動的に適当な後処理プログラムを起動します。 .TP .BI \-P arg 後処理プログラムに .I arg を引数として渡します。別々の引数は別々の .B \-P オプションで指定する必要があります。 .B groff は、 .I arg の前に .B \- をつけてコマンドに渡したりしないことに注意してください。 .TP .B \-l プリンタへ出力します。印字出力に用いられるコマンドは、デバイス 記述ファイルの .B print コマンドによって指定されます。 .TP .BI \-L arg .I arg をプリンタスプーラプログラムに渡します。別々の引数は、別々の .B \-L オプションで指定する必要があります。 .B groff は、 .I arg の前に .B \- をつけてコマンドに渡したりしないことに注意してください。 .TP .BI \-T dev デバイス .I dev 用に出力します。デフォルトのデバイスは .B ps です。 .TP .B \-X 通常の後処理プログラムのかわりに、 .B gxditview を起動してプレビューします。 .B groff は .B gxditview に .B -printCommand オプションを渡します。このオプションは .B groff に .B -l オプション指定時に実行される .B Print アクションを実行させます。 .B \-Tps 以外が指定されている場合は、よい結果が得られません。 .TP .B \-N .B eqn の区切り文字間に改行が入ることを禁止します。 .B eqn の .B \-N オプションと同様です。 .TP .B \-S より安全なモード。 .B \-S オプションを .B pic に渡し、 .B troff にて .B \%\-msafer マクロを使用します。 .TP .B \-a .TQ .B \-b .TQ .B \-i .TQ .B \-C .TQ .B \-E .TQ .BI \-w name .TQ .BI \-W name .TQ .BI \-m name .TQ .BI \-o list .TQ .BI \-d cs .TQ .BI \-r cn .TQ .BI \-F dir .TQ .BI \-M dir .TQ .BI \-f fam .TQ .BI \-n num これらのオプションの詳細は、 .BR troff (1) に記述してあります。 .SH 環境変数 .TP .SM .B GROFF_COMMAND_PREFIX もしこの変数が .I X に設定されていると、 .B groff は .B troff のかわりに .IB X troff を起動します。これは、 .BR tbl , .BR pic , .BR eqn , .BR refer , .B soelim にも同様に影響します。 .BR gropos , .BR grodvi , .BR grotty , .B gxditview には影響しません。 .TP .SM .B GROFF_TMAC_PATH マクロファイルを検索すべきディレクトリのリスト(リストの区切りはコロンです) .TP .SM .B GROFF_TYPESETTER デフォルトのデバイス .TP .SM .B GROFF_FONT_PATH .BI dev name という名前のディレクトリを検索するディレクトリのリスト(リストの区切りはコロンです) .TP .SM .B PATH .B groff から起動されるプログラムが存在するパス .TP .SM .B GROFF_TMPDIR 一時的なファイルが作成されるディレクトリ。もし、 .SM GRROFF_TMPDIR が設定さ れておらず、 .B .SM TMPDIR が設定されているなら、 .SM TMPDIR で示されるディレクトリ に一時ファイルが生成されます。さもなければ、一時ファイルは .B /tmp に作られます。 .BR grops (1) と .BR refer (1) が一時ファイルを作成する可能性があります。 .SH 関連ファイル .Tp \w'\fB/usr/share/groff_font/dev\fIname\fB/DESC'u+3n .BI /usr/share/groff_font/dev name /DESC デバイス .IR name のデバイス記述ファイル .TP .BI /usr/share/groff_font/dev name / F デバイス .I name のためのフォント .I F を記述したフォントファイル .SH 作者 James Clark .SH バグ バグレポートは、bug-groff@prep.ai.mit.edu. までお願いします。 レポートの際にはバグを再現できる完全な例題を添付し、あなたの利 用している groff のバージョンを添えて下さい。 -.SH 著作権 +.SH COPYRIGHT Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc. .LP groff はフリーソフトウェアです。Free Software Foundation から 出版されている the GNU General Public License の ver 2.0 かそ れ以降に基づく限り再配布したり、変更することが可能です。 .LP groff は使い易いツールとして配布されることを望まれていますが、 どのような保証もありません。それが商業的であってもある特定の目 的に対するだけであっても保証はありません。詳しくは GNU の General Public License を参照して下さい。 .LP あなた は groff のコピーを GNU General Public License と共に受 けとっているはずです。その COPYING を参照して下さい。そうでな い場合には、 Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA まで御連絡下さい。 .SH 入手性 最新の groff はたいてい prep.ai.mit.edu の pub/gnu ディレクト リに置かれており、anonymous ftp で入手できます。 .SH 関連項目 .\" .BR grog (1), .BR troff (1), .BR tbl (1), .BR pic (1), .BR eqn (1), .BR soelim (1) , .BR refer (1), .BR grops (1), .BR grodvi (1), .BR grotty (1), .\" .BR gxditview (1), .BR groff_font (5), .BR groff_out (5), .BR groff_ms (7), .BR me (7), .BR groff_char (7), .BR msafer (7) diff --git a/ja_JP.eucJP/man/man5/cvs.5 b/ja_JP.eucJP/man/man5/cvs.5 index 83c2613596..f57438de9d 100644 --- a/ja_JP.eucJP/man/man5/cvs.5 +++ b/ja_JP.eucJP/man/man5/cvs.5 @@ -1,365 +1,365 @@ .\" jpman %Id: cvs.5,v 1.2 1998/06/13 12:32:50 horikawa Chk % .\" WORD: concurrent version system: コンカレントバージョンシステム [cvs.1,cvs.5] .\" WORD: repository: (CVS の)リポジトリ [cvs.1,cvs.5] .\" WORD: commit: (通常の文中では)コミット [cvs.1,cvs.5] .\" WORD: check out: (通常の文中では)チェックアウト [cvs.1,cvs.5] .\" WORD: wrapper: ラッパ .\" WORD: newsgroup: ニュースグループ [limits.1,patch.1,init.8 のニュース] .\" WORD: history: (CVS の) ヒストリ [cvs.1,cvs.5] .\" WORD: template: テンプレート .TH cvs 5 "12 February 1992" .\" Full space in nroff; half space in troff .de SP .if n .sp .if t .sp .5 .. .SH 名称 cvs \- コンカレントバージョンシステムのサポートファイル .SH 書式 .hy 0 .na .TP .B $CVSROOT/CVSROOT/commitinfo,v .TP .B $CVSROOT/CVSROOT/cvsignore,v .TP .B $CVSROOT/CVSROOT/cvswrappers,v .TP .B $CVSROOT/CVSROOT/editinfo,v .TP .B $CVSROOT/CVSROOT/history .TP .B $CVSROOT/CVSROOT/loginfo,v .TP .B $CVSROOT/CVSROOT/modules,v .TP .B $CVSROOT/CVSROOT/rcsinfo,v .TP .B $CVSROOT/CVSROOT/taginfo,v .ad b .hy 1 .SH 解説 .B cvs は、ソースディレクトリの階層的な集合を 管理するシステムです。 \fBcvs\fP を使う際のコマンドと手続きは .BR cvs ( 1 ) に記述されています。 .SP .B cvs は、リビジョン管理されたファイルのマスタコピーを含むディレクトリである \fIソースリポジトリ\fP を管理し、 ここから開発者の個人的な \fI作業ディレクトリ\fP へ特定のリビジョンの ファイルをコピーしたり、作業ディレクトリから修正を採り入れたりします。 ファイルの構成という点から見ると、各ソースリポジトリは \fB$CVSROOT\fP の直下のサブディレクトリになります。 .SP ここで示すファイルは補助的なファイルであり、 \fBcvs\fP を利用するにあたって必須ではありませんが、 \fBcvs\fP をより柔軟に操作できるようになります。 .SP \fBcvs\fP により管理されているソースの集合に分かり易い 名前をつけるために、`\|modules\|' を利用できます。 `\|modules\|' が存在しなければ、開発者は \fBcvs\fP コマンドで ファイルを操作する際に完全なパス名 (絶対パスもしくは \fB$CVSROOT\fP からの相対パス) を指定しなければなりません。 .SP `\|\fBcvs commit\fP\|' が実行される際に常に実行されるプログラムを 定義するために、`\|commitinfo\|' ファイルを利用できます。 これらのプログラムは、修正、追加、削除されたファイルが本当に コミットされる準備ができているかどうかをチェックする「コミット前の」 チェックとして用いられます。 このチェックを、ソースリポジトリの一部 (もしくは全体) から 特定の人やグループを除外するために利用している人もいます。 また、変更されたファイルがそのサイトのコーディング規約に 沿っているかどうかを確かめるためにも利用されるでしょう。 .SP ファイルがリポジトリにチェックインされる時や、リポジトリから チェックアウトされる時に使われるラッパコマンドを .B cvs に登録するために、 `\|cvswrappers\|' ファイルを利用できます。 ラッパは CVS に入ってくる、もしくは CVS から出ていくファイルや ディレクトリを加工することができます。 使い方はいろいろありますが、一例としては、 ファイルがチェックインされる前に C ファイルを整形し、 リポジトリ内の全てのコードの見栄えを揃えるという用法があります。 .SP .BR commit 後に常に実行される、 リポジトリ内の変更に関するログエントリを書き込むプログラムを定義するために、 `\|loginfo\|' ファイルを利用できます。 これらのプログラムは、ファイルにログメッセージを追加したり、 電子メールを通じて開発者のグループにログメッセージを送ったり、 特定のニュースグループにログメッセージを投稿したりするために使われます。 .SP .BR tag 操作や .BR rtag 操作の後で実行されるプログラムを定義するために、 `\|taginfo\|' ファイルを利用できます。 これらのプログラムは、 新しいタグ名とそのタグを作成したプログラマ名の一覧ファイルに メッセージを追加したり、 開発者のグループにメールを送ったり、 特定のニュースグループにメッセージを投稿したりするために使われます。 .SP ログメッセージの書式を定義するために、 `\|rcsinfo\|' ファイルを利用できます。 .SP `\|\fBcvs commit\fP\|' のログエントリを編集・確認する際に実行する プログラムを定義するために、 `\|editinfo\|' ファイルを利用できます。 これは `\|rcsinfo\|' の書式指定と共に用いると非常に便利であり、 変更をコミットするユーザが、書式の適切な欄を埋めていることを チェックすることができます。 .SP \fBupdate\fP の時に無視するデフォルトのファイル一覧を指定するために、 `\|cvsignore\|' ファイルを利用できます。 .SP リポジトリに影響を及ぼす \fBcvs\fP コマンドを記録するために、 `\|history\|' ファイルを利用できます。 このファイルを作成するとヒストリが記録されるようになります。 .SH 関連ファイル .TP .B modules `\|modules\|' ファイルは、あなたがソースコードの集合に付けた名前を記録します。 \fBcvs\fP を使って、正しい書式でファイルを `\|\fB$CVSROOT/CVSROOT/modules,v\fP\|' にチェックインすると、 \fBcvs\fP はこれらの定義を利用するようになります。 .SP `\|modules\|' ファイルは、モジュール定義以外にも、空行やコメント (`\|\fB#\fP\|' から始まる行) を含むことができます。 長い行は、行の最後の文字にバックスラッシュ (``\e'') を置くことで 次の行に続けることができます。 .SP \fIモジュール定義\fP は `\|modules\|' ファイルの単一行で、 2 つの書式があります。どちらにおいても \fImname\fP はモジュール名を 表し、行の残りはその定義になります。 .SP \fImname\fP \fB\-a\fP \fIaliases\fP\|.\|.\|. .br これはモジュール \fImname\fP を定義する最も簡単な方法です。 `\|\fB\-a\fP\|' はこの定義が単なる別名 (alias) であることを示します。 \fBcvs\fP は (コマンドの引数として) \fImname\fP が使われると、 代わりに \fIaliases\fP の名前のリストが指定されたものとして扱います。 \fIaliases\fP には、他のモジュール名もしくはパスを指定します。 \fIaliases\fP にパスを指定すると、 \fBcvs\fP の引数に明示的にパスが指定した場合と同様、 `\|\fBcvs checkout\fP\|' は 作業ディレクトリへの全ての中間ディレクトリを作成します。 .SP .nf \fImname\fP [ \fIoptions\fP ] \fIdir\fP [ \fIfiles\fP\|.\|.\|. ] [ \fB&\fP\fImodule\fP\|.\|.\|. ] .fi .SP もっとも単純な場合、この形式のモジュール定義は `\|\fImname dir\fP\|' となります。 これはディレクトリ \fIdir\fP 内のすべてのファイルをモジュール \fImname\fP として定義します。 \fIdir\fP は (\fB$CVSROOT\fP から、ソースリポジトリ内にある) ソースファイルのディレクトリへの相対パスです。 この場合、\fBcheckout\fP 時には作業ディレクトリとして \fImname\fP という単一のディレクトリのみが作成され、 \fIdir\fP が複数ディレクトリ階層を含むパスであろうと、 中間のディレクトリはデフォルトでは作成されません。 .SP モジュール定義の \fIdir\fP の後で \fIfiles\fP を明示的に指定することで、 \fIdir\fP 内の特定のファイルを選択することができます。 \fBmodules\fP にあるサンプル定義は、あるディレクトリの 単一のファイルから定義されるモジュールの例となっています。 ここでは別の例を示します: .SP .nf .ft B m4test unsupported/gnu/m4 foreach.m4 forloop.m4 .ft P .fi .SP この定義では、`\|\fBcvs checkout m4test\fP\|' を実行すると、 単一階層の作業ディレクトリ `\|m4test\|' が作成され、 \fBcvs\fP ソースリポジトリ内の深い階層のディレクトリにある、 指定された 2 つのファイルが置かれます。 .SP モジュール定義中に `\|\fB&\fP\fImodule\fP\|' と書くことによって、 他のモジュールを参照することができます。 \fBcheckout\fP 時には、作業ディレクトリ内に各 \fImodule\fP 毎の ディレクトリが作成されます。 .br .I \fBcvs\fP 1.3 の新機能; モジュール定義ファイルを古いバージョンの \fBcvs\fP と共有する場合は、 この機能は使わないでください。 .SP そして、モジュール定義に以下の \fIoptions\fP を加えることができます: .SP \&`\|\fB\-d\fP \fIname\fP\|', モジュール名ではなく、他の名前を 作業ディレクトリの名前として用います。 .br .I \fBcvs\fP 1.3 の新機能; モジュール定義ファイルを古いバージョンの \fBcvs\fP と共有する場合は、 この機能は使わないでください。 .SP \&`\|\fB\-i\fP \fIprog\fP\|' を用いると、モジュール内のファイルが コミットされたときに実行されるプログラム \fIprog\fP を指定できます。 \fIprog\fP は、ソースリポジトリ内の影響を受けるディレクトリへの フルパスを単一引数として受け取ります。 \fBコミット\fP 時にプログラムを実行するためには、 `\|commitinfo\|', `\|loginfo\|', `\|editinfo\|' ファイルを使う方法もあります。 .SP `\|\fB\-o\fP \fIprog\fP\|' を用いると、モジュール内のファイルが チェックアウトされたときに実行されるプログラム \fIprog\fP を指定できます。 \fIprog\fP は、モジュール名を単一引数として受け取ります。 .SP `\|\fB\-e\fP \fIprog\fP\|' を用いると、モジュール内のファイルが エクスポート (export) されたときに実行される プログラム \fIprog\fP を指定できます。 \fIprog\fP は、モジュール名を単一引数として受け取ります。 .SP `\|\fB\-t\fP \fIprog\fP\|' を用いると、モジュール内のファイルに タグが付けられたときに実行されるプログラム \fIprog\fP を指定できます。 \fIprog\fP は、 モジュール名と \fBrtag\fP で指定されたシンボリックタグの 2 つを 引数として受け取ります。 .SP `\|\fB\-u\fP \fIprog\fP\|' を用いると、チェックアウトされたモジュールの トップディレクトリにて `\|\fBcvs update\fP\|' が用いられたときに 実行されるプログラム \fIprog\fP を指定できます。 \fIprog\fP は、このモジュールのソースリポジトリへのフルパスを 単一引数として受け取ります。 .TP \&\fBcommitinfo\fP, \fBloginfo\fP, \fBrcsinfo\fP, \fBeditinfo\fP これらのファイルは全て、`\|\fBcvs commit\fP\|' 処理の間の 様々な場面で呼び出されるプログラムを指定します。 これらのファイルは共通の構造を持ちます。 各行は、次の 2 つのフィールドを持ちます: すなわち、 正規表現と、 空白の後にファイル名かコマンド行のテンプレートです。 正規表現の 1 つがリポジトリ内のディレクトリ名にマッチすると、 行の残りが使われます。 行が文字 \fB#\fP で始まっている場合、コメントとして無視されます。 フィールド間の空白も無視されます。 .SP `\|loginfo\|' では、行の残りは実行されるコマンド行の テンプレートとなります。 テンプレートはプログラム名だけでなく、 好きなだけ引数を付けることもできます。 引数リストのどこかに `\|\fB%s\fP\|' を指定すると、 \fBcvs\fP はその場所に \fBコミット\fP により影響を受ける ファイルリストを列挙します。 リストの最初のエントリは、 ソースリポジトリ内の変更が行われる位置への相対パスです。 リストの残りは、この \fBコミット\fP により修正・追加・削除される ファイルとなります。 .SP `\|taginfo\|' では、行の残りは実行されるコマンド行の テンプレートとなります。 コマンドに渡される引数は、順番に .I タグ名 、 .I 操作 (すなわち、 .B add は `tag' を、 .B mov は `tag -F' を、 .B del は `tag -d` をそれぞれ意味します)、 .I リポジトリ となり、残りは全て .B ファイル名 と .B リビジョン の組となります。 フィルタプログラムが 0 以外を返して終了すると、タグ処理は中断されます。 .SP `\|commitinfo\|' では、行の残りは実行されるコマンド行の テンプレートとなります。 テンプレートはプログラム名だけでなく、 好きなだけ引数を付けることもできます。 テンプレートには現在のソースリポジトリへのフルパスが付け加えられ、 コミットにより (追加・削除・修正など) 影響をおよぼされる ファイルのファイル名が続きます。 .SP `\|rcsinfo\|' では、行の残りはログメッセージ用のテンプレートへ 読み込まれるファイルへのフルパスです。 .SP `\|editinfo\|' では、行の残りは実行されるコマンド行の テンプレートとなります。 テンプレートはプログラム名だけでなく、 好きなだけ引数を付けることもできます。 現在のログメッセージ用テンプレートファイルへのフルパスが 最後に追加されます。 .SP 正規表現の代わりに、以下の 2 つのうちどちらかの特殊文字列 を使うことができます: `\|\fBALL\fP\|' では常に実行されるコマンド行テンプレート を指定し、 `\|\fBDEFAULT\fP\|' ではどの正規表現にもマッチしなかったときに 用いられるコマンド行テンプレートを指定します。 .SP `\|commitinfo\|' ファイルには、 他の \fBコミット\fP 操作が行われる \fI前に\fP 実行されるコマンドを指定し、 \fBコミット\fP が行われる前に満たすべき状況をチェックするために 利用できます。 \fBコミット\fP 操作の残りは、このファイルで指定されたコマンド全てが 終了ステータス \fB0\fP で終了したときにのみ続行されます。 .SP `\|rcsinfo\|' ファイルにより、\fBコミット\fP のログ作成の際の \fIログ用テンプレート\fP を指定できます。 このテンプレートの書式を埋めていくだけで、\fBコミット\fP ログを 作成できるようになります。 このファイルでは、正規表現より後のフィールドはコマンドテンプレートではなく、 ログ用テンプレート書式ファイル (複数可) のファイル名となります。 .SP `\|editinfo\|' ファイルにより、\fIコミットが開始する前\fP で ログ情報が記録された後の段階で実行されるスクリプトを指定できます。 これらの「編集」スクリプトは、 ログファイルに記録された情報を確認することができます。 編集スクリプトが 0 以外の終了ステータスを返した場合、コミットは中断されます。 .SP `\|loginfo\|' ファイルにより、コミットの \fI最終段階\fP で実行される コマンドを指定できます。 コミットログメッセージとして指定されたテキストはコマンドにパイプされます: よくある用法としては、メールを送る、ニュースグループの記事とする、 中央ファイルに追加書き込みするというものがあります。 .TP \&\fBcvsignore\fP, \fB.cvsignore\fP `\|\fBcvs update\fP\|' 中に無視されるデフォルトのファイル (もしくは .BR sh ( 1 ) のファイル名パターン) のリストです。 まず最初に、\fBcvs\fP はコンパイル時に組み込まれたデフォルトの ファイル名パターンのリストを読み込みます ( .BR cvs ( 1 ) を参照)。 その後、\fB$CVSROOT/CVSROOT/cvsignore\fP ファイルが存在すれば、 その中のリポジトリ毎のリストを読み込みます。 そして、`\|$HOME/.cvsignore\|' にあるユーザ毎のリストを読み込みます。 最後に、\fBcvs\fP はディレクトリを辿る時に ディレクトリ中に `\|.cvsignore\|' ファイルがあれば、それを読み込みます。 これらのディレクトリ毎のファイルは、それを含むディレクトリにのみ 有効で、サブディレクトリには作用しません。 .TP .B history ヒストリを記録するには \fB$CVSROOT/CVSROOT\fP にこのファイルを作成します (詳細は `\|\fBcvs history\fP\|' の記述を参照)。 .SH 関連項目 .BR cvs ( 1 ), -.SH 著作権 +.SH COPYING Copyright \(co 1992 Cygnus Support, Brian Berliner, and Jeff Polk .PP Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. .PP Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. .PP Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. diff --git a/ja_JP.eucJP/man/man8/amd.8 b/ja_JP.eucJP/man/man8/amd.8 index b209778df2..c6a4365ab6 100644 --- a/ja_JP.eucJP/man/man8/amd.8 +++ b/ja_JP.eucJP/man/man8/amd.8 @@ -1,332 +1,332 @@ .\" .\" Copyright (c) 1997-1998 Erez Zadok .\" Copyright (c) 1989 Jan-Simon Pendry .\" Copyright (c) 1989 Imperial College of Science, Technology & Medicine .\" Copyright (c) 1989 The Regents of the University of California. .\" All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Jan-Simon Pendry at Imperial College, London. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgment: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" %W% (Berkeley) %G% .\" .\" %Id: amd.8,v 1.3 1998/09/12 04:04:57 obrien Exp % .\" .\" jpman %Id: amd.8,v 1.2 1997/04/15 00:24:08 mutoh Stab % .\" .Dd April 19, 1994 .Dt AMD 8 .Os .Sh 名称 .Nm amd .Nd 自動マウントファイルシステム .Sh 書式 .Nm amd .Op Fl F Ar conf_file .Nm amd .Op Fl nprvHS .Op Fl a Ar mount_point .Op Fl c Ar duration .Op Fl d Ar domain .Bk -words .Op Fl k Ar kernel-arch .Ek .Op Fl l Ar logfile .Op Fl o Ar op_sys_ver .Op Fl t Ar interval.interval .Bk -words .Op Fl w Ar interval .Ek .Op Fl x Ar log-option .Op Fl y Ar YP-domain .Bk -words .Op Fl C Ar cluster-name .Ek .Op Fl D Ar option .Op Fl F Ar conf_file .Op Fl O Ar op_sys_name .Op Fl T Ar tag .Oo .Ar directory mapname .Op Fl map-options .Oc .Ar ... .Sh 解説 .Nm は、ファイルシステムがアクセスされたときに自動的にそのファイルシステムを マウントするデーモンです。マウントされたファイルシステムは、アクセスがな ければ自動的にアンマウントされます。 .Pp .Nm は、自分自身をNFSサーバとして、指定された .Ar directory に結び付けます。 その指定ディレクトリ内でのファイルアクセスは .Nm によって処理されます。 .Nm は、 .Ar mapname で定義されたマップを使って、あるディレクトリ にどのファイルシステムを割り当てるかを決定します。 一般に .Ar mapname は、ホスト名やファイルシステムの情報、 マウントオプションから構成されます。 .Pp 前述の最初の形式では、 .Nm は短いヘルプ文字列を表示します。 第 2 の形式では、オプションを指定しないか、 .Fl F が使用されると、 .Nm は設定パラメータをファイル .Ar conf_file から読み込みます。設定ファイルのデフォルトは .Pa /etc/amd.conf です。 最後の形式についてはここから記述します。 .Sh オプション .Bl -tag -width Ds .It Fl a Ar temporary-directory 実際にファイルシステムをマウントする位置を指定します。 デフォルトは .Pa /a です。 .It Fl c Ar duration ディレクトリが使われないときに、探索に使われた名前をキャッシュ して保持する秒数を指定します。デフォルトは5分です。 .It Fl d Ar domain ローカルドメイン名を指定します。もしこのオプションが与 えられなければ、ドメイン名はホスト名から決定されます。 .It Fl k Ar kernel-arch カーネルアーキテクチャを指定します。これは単に ${karch} セレクタ を指定するだけです。 .It Fl l Ar logfile マウントおよびアンマウントのイベントを記録するログファイル を指定します。 もし、 .Ar logfile が ``syslog'' という文字列なら、ログメッセージは .Xr syslog 3 によってシステムログデーモンに送られます。 デフォルトの syslog ファシリティは LOG_DAEMON です。 変更したい場合は、ログファイル名の後にコロンで区切って、 その名前を付けてください。 例えば、 .Ar logfile が文字列 .Nm syslog:local7 である場合、 .Nm は、 .Xr syslog 3 の LOG_LOCAL7 ファシリティを使用してログを取ります (ただしシステムに本ファイシリティが存在する場合)。 .It Fl n ホスト名を正規化します。${rhost}で参照される名前は、使わ れる前にホストデータベースに関連づけて正規化されます。 これは、エイリアスを `` 公式 (official)'' ホスト名に変換する効果があります。 .It Fl o Ar op_sys_ver 組み込まれているオペレーティングシステムバージョン番号を上書きします。 後方互換性のために、 組み込みのバージョン番号が望ましくない場合に有用です。 例えば、組み込みのバージョン番号が .Dq 2.5.1 の場合、 .Dq 5.5.1 で上書きして、後者を意識して書いた古いマップを使用することができます。 .It Fl p プロセスIDを表示します。 .Nm のプロセス ID を標準出力に出力して、ファイルに保存することができます。 .It Fl r 存在するマウントをリスタートします。 .Nm はマウントファイルテーブルをスキャンして、 現在マウントされているファイルシステムを判断します。 ファイルシステムが自動マウントされたものであれば、 .Nm は、その情報を継承します。 .It Fl t Ar interval.interval NFS/RPC/UDPのリトライの間隔を、10分の1秒単位で指定します。 デフォルト値は0.8秒です。2番目の値は再送カウンタを変更します。 どちらか一方か、両方の値が設定されていなければ、 適当なデフォルト値が設定されます。 .It Fl v バージョンを表示します。標準エラー出力に設定情報を表示します。 .It Fl w Ar interval キャッシュする時間を超えたファイルシステムのマウントを解除する時間を 秒単位で指定します。デフォルト値は2分です。 .It Fl x Ar options 実行時に何をログに記録するかを指定します。 .Ar options には次のものをコンマで区切って使用できます: fatal, error, user, warn, info, map, stats, all。 .It Fl y Ar domain NISマップをとってくる際に用いるNISドメインを指定します。 デフォルトはシステムのドメイン名です。このオプションは、NIS を動かしていないときには無視されます。 .It Fl C Ar cluster-name 代わりの HP-UX クラスタ名を指定します。 .It Fl D Ar option デバッグオプションの種類を選択することができます。 .Ar option の頭に .Ar no をつけると、そのオプションの逆の影響を与えます。 オプションは並べて指定することができます。もっとも役に立つのは .Ar all です。 .Pp .Fl D はデバッグのときにだけ使うものであるため、ここでは他のオプションに ついては説明しません。サポートされているオプションは .Fl v オプションで表示されますが、詳細はソースコードに記述されています。 .It Fl F Ar conf_file 使用する .Nm 設定ファイルを指定します。 ファイル形式については .Xr amd.conf 5 を参照してください。 この設定ファイルの用途は、 コマンドラインにて多くのオプションをタイプする代りに、 これらのオプションを指定することです。 .Nm amd.conf ファイルは、 amd が持つすべてのコマンドラインオプションに対するディレクティブと、 設定ファイルによってのみ利用可能な多くの設定を含みます。 本オプションで指定された設定ファイルは、 他のオプションすべてが処理された後で処理されます。 本オプションがコマンドラインのどこに置かれていたかは無関係です。 .It Fl H ヘルプと使用方法の文字列を表示します。 .It Fl O Ar op_sys_name 組み込まれているオペレーティングシステム名を上書きします。 後方互換性のために、 組み込みの名前が望ましくない場合に有用です。 例えば、組み込みの名前が .Dq sunos5 の場合、 .Dq sos5 で上書きして、後者を意識して書いた古いマップを使用することができます。 .It Fl S .Nm の走行中の実行可能ページをメモリにロックしません。 .Nm の性能向上のために、 .Xr plock 3 コールをサポートするシステムでは .Nm プロセスをメモリにロック可能です。 この場合、オペレーティングシステムが必要に応じて .Nm プロセスをスケジュールしたり、ページアウトしたり、スワップする 機会が減ります。 .Nm の性能は向上する傾向がありますが、 .Nm プロセスが使用するメモリを .Pq 他のプロセスが使えないようにして 予約してしまうというコストとなります。 この動作が望ましくない場合、 .Fl S を使用します。 .It Fl T Ar tag .Xr amd.conf 5 が使用するタグを指定します。 タグが付いている全マップエントリが処理されます。 タグが付いていないマップエントリは常に処理されます。 .Ar tag 以外のタグが付いているマップエントリは処理されません。 .Sh 関連ファイル .Bl -tag -width /axx .It Pa /a 動的にファイルシステムがマウントされるディレクトリ .It Pa /etc/amd.conf デフォルトの設定ファイル .El .Pp .Sh 注意 マウントマップを作成する場合には注意が必要です。 .Pp .Tn NFS ファイルシステム上のシンボリックリンクは、信じられないほど 非効率的です。 .Tn NFS を実装した多くのシステムでは、 シンボリックリンクの展開結果はカーネルがキャッシュせずに、 .Em lookuppn (パス名変換)時にシンボリックリンクに出会うたびに NFSサーバに対してRPCコールを行うようになっています。 キャッシュをどこかに加えることによって、かなり大きな性能の向上が 得られるはずです。 上手に実現したオートマウントシステムで .Xr symlink 2 を置き換えれば大きくスピードアップすることができますが、 同時に多くのコンテキストスイッチも起こします。 .Pp .Nm のすべての機能を駆使できれば非常に便利ですが、 それにはかなりの想像力が必要になります。 .Pp .Sh 関連項目 .Xr domainname 1 , .Xr hostname 1 , .Xr syslog 3 , .Xr amd.conf 5 , .Xr mtab 5 , .Xr amq 8 , .Xr automount 8 , .Xr mount 8 , .Xr umount 8 .Rs .%T Amd \- The 4.4 BSD Automounter. .Re .Pp .Sh 作者 .An Jan-Simon Pendry Aq jsp@doc.ic.ac.uk , Department of Computing, Imperial College, London, UK. .Pp .An Erez Zadok Aq ezk@cs.columbia.edu , Department of Computer Science, Columbia University, New York, USA. .Pp -.An am-utik の、他の作者および貢献者は、 +.An am-utils の、他の作者および貢献者は、 am-utils とともに配布されている .Nm AUTHORS ファイルに記述されています。 .Sh 歴史 .Nm amd は 4.4BSD にはじめて導入されました。 diff --git a/ja_JP.eucJP/man/man8/amq.8 b/ja_JP.eucJP/man/man8/amq.8 index 38808096cf..4b05ee95f6 100644 --- a/ja_JP.eucJP/man/man8/amq.8 +++ b/ja_JP.eucJP/man/man8/amq.8 @@ -1,226 +1,226 @@ .\" .\" Copyright (c) 1997-1998 Erez Zadok .\" Copyright (c) 1990 Jan-Simon Pendry .\" Copyright (c) 1990 Imperial College of Science, Technology & Medicine .\" Copyright (c) 1990 The Regents of the University of California. .\" All rights reserved. .\" Copyright (c) 1990, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Jan-Simon Pendry at Imperial College, London. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgment: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" %W% (Berkeley) %G% .\" .\" %Id: amq.8,v 1.3 1998/09/12 04:04:57 obrien Exp % .\" .\" jpman %Id: amq.8,v 1.3 1997/08/11 14:26:54 horikawa Stab % .\" .Dd March 16, 1991 .Dt AMQ 8 .Os .Sh 名称 .Nm amq .Nd 自動マウントシステムへの問い合わせツール .Sh 書式 .Nm amq .Op Fl fmpsuvTU .Op Fl h Ar hostname .Op Fl l Ar log_file .Op Fl x Ar log_options .Op Fl D Ar debug_options .Op Fl M Ar mountmap_entry .Op Fl P Ar program_number .Op Ar directory ... .Pp .Sh 解説 .Nm amq は、現在の .Xr amd 8 の動作状況を知るための簡単な手段を提供します。 .Nm amd との通信は .Tn RPC によって行われます。現在のプロトコルでは、 3 つのモード がサポートされています。デフォルトでは、マウントポイントと自動 マウントされたファイルシステムのリストが出力されます。 別のホストの状態を知るときは、 .Fl h オプションで .Ar hostname を指定します。 .Pp ディレクトリ名が与えられると、デフォルトの出力ではファイルシステム ごとの情報が表示されます。 .Sh オプション .Bl -tag -width flag .It Fl f 自動マウントシステムに内部キャッシュを破棄するように要求します。 .It Fl h Ar hostname .Ar hostname で指定されたホストに問い合わせを行います。デ フォルトでは、ローカルホストが使われます。 .Tn HP-UX クラスタでは、デフォルトでルートサーバに問い合わせが行わ れます。これは通常、自動マウントシステムがルートサーバで動 いているからです。 .It Fl l Ar log_file .Nm amd に対し、 .Ar log_file をログファイル名として使用するように指示します。 セキュリティのために、これは .Nm amd が起動したときと同じログファイルである必要があります。 それゆえ本オプションが有効なのは、 日々の cron ジョブによってログファイルがローテートおよび圧縮するために、 .Nm amd のファイルハンドルをリフレッシュするときに限られます。 .It Fl m マウントされたファイルシステムのリストを、 各ファイルシステムへの参照回数と マウント時に起きたエラーを含めて表示するように、自動マウント システムに要求します。 .It Fl p リモートもしくはローカルに実行されている .Nm amd のプロセス ID を返します。 ローカルの .Nm amd プロセスにシグナルを送る必要があるときに便利であり、 プロセステーブルを探さなくて済みます。 本オプションは .Pa ctl-amd スクリプトの中で使用されています。 .It Fl s 自動マウントシステムに、システムの統計情報を表示するように要求します。 .It Fl u 情報を表示する代わりに、 指定したファイルシステムをアンマウントするよう 自動マウントシステムに要求します。この要求によって、 必ずアンマウントが実行されるわけではありません。 単にそのファイルシステムのマウントが、 タイムアウトするにすぎません。 タイムアウトは .Nm amd のメインスケジューラに検出され、結果として 普通にタイムアウトしたときと同じことが行われます。 .It Fl v 自動マウントシステムに、バージョン情報を提供するように要求します。これは、 .Nm amd の .Fl v オプションで得られる情報の一部です。 .It Fl x Ar log_options 自動マウンタに対し、 .Ar log_options に指定されたロギングオプションを今から使用するように指示します。 .It Fl D Ar log_options 自動マウンタに対し、 .Ar debug_options に指定されたデバッギングオプションを今から使用するように指示します。 .It Fl M Ar mountmap_entry マウントマップエントリを .Nm amd に渡し、評価されるまで待ちます。これによりマウントが発生する可能性があります。 本オプションはセキュリティ面で非常に危険です。 デフォルトでは、 .Nm amd と .Nm amq は本オプションをサポートしていません。 本オプションを有効にするためには、 .Nm am-utils を .Ar --enable-amq-mount 付きで構築する必要があります。 .It Fl P Ar program_number 別の RPC プログラム番号 .Ar program_number で登録している .Nm amd に接続し、その自動マウンタのインスタンスに対して他のすべての操作を適用します。 複数コピーの .Nm amd を実行していて、それぞれを別個に管理する必要があるときに有用です。 指定しない場合には、 .Nm amq は .Nm amd のデフォルトのプログラム番号 300019 を使用します。 セキュリティのため、 .Nm amd が使用可能な別のプログラム番号は 300019 から 300029 まで (両端含む) に限定されています。 .It Fl T .Nm amd に対して TCP でのみ通信しようとします。 通常 .Nm amq は TCP を使用しようとし、失敗すると UDP を使用しようとします。 .It Fl U .Nm amd に対して UDP (コネクションレス) でのみ通信しようとします。 通常 .Nm amq は TCP を使用しようとし、失敗すると UDP を使用しようとします。 .El .Sh 関連ファイル .Bl -tag -width amq.x .It Pa amq.x RPCのプロトコル記述 .El .Sh 警告 .Nm amq は、Sunが登録しているRPCプログラム番号(十進数で300019)を使っています。 これは通常、 .Pa /etc/rpc には含まれていません。 .Pp .Sh 関連項目 .Xr amd.conf 5 , .Xr amd 8 , .Xr ctl-amd 8 .Xr amd 8 .Sh 作者 .An Jan-Simon Pendry Aq jsp@doc.ic.ac.uk , Department of Computing, Imperial College, London, UK. .Pp .An Erez Zadok Aq ezk@cs.columbia.edu , Department of Computer Science, Columbia University, New York, USA. .Pp -.An am-utik の、他の作者および貢献者は、 +.An am-utils の、他の作者および貢献者は、 am-utils とともに配布されている .Nm AUTHORS ファイルに記述されています。 .Sh 歴史 .Nm amq は、はじめに 4.4BSD で導入されました。