former is easier to read in Japanese text. o reword entire sort.1 so that expressions of translation get to close to original English expressions. Submitted by: kuma@jp.FreeBSD.org, sig@is.akita-u.ac.jp (SASAKI Shigeo)
244 lines
7.1 KiB
Groff
244 lines
7.1 KiB
Groff
.\" %FreeBSD: src/gnu/usr.bin/sort/sort.1,v 1.5.8.1 2001/07/22 11:01:34 dd Exp %
|
||
.\"
|
||
.\" $FreeBSD$
|
||
.TH SORT 1 "GNU Text Utilities" "FSF" \" -*- nroff -*-
|
||
.SH 名称
|
||
sort \- テキストファイルを行でソートする
|
||
.SH 書式
|
||
.B sort
|
||
[\-cmus] [\-t separator] [\-o output-file] [\-T tempdir] [\-bdfiMnr]
|
||
[+POS1 [\-POS2]] [\-k POS1[,POS2]] [file...]
|
||
.br
|
||
.B sort
|
||
{\-\-help,\-\-version}
|
||
.SH 解説
|
||
このマニュアルページは GNU 版の
|
||
.B sort
|
||
について書かれています。
|
||
.B sort
|
||
は、file が指定されていればそのファイルから、
|
||
ファイルが指定されない場合は標準入力からデータを読み込み、
|
||
入力した各行について、ソートやマージや比較を行います。
|
||
ファイル名 `-' は標準入力を意味します。
|
||
.B sort
|
||
はデフォルトでは標準出力に結果を書き出します。
|
||
.PP
|
||
.B sort
|
||
は、3 つの動作モードを持っています。
|
||
(デフォルトの) ソートと、マージと、ソートされているかどうかのチェックです。
|
||
以下のオプションで動作モードを変更します。
|
||
.TP
|
||
.I \-c
|
||
ファイルが既にソートされたものであるかどうかチェックします。
|
||
もし、ソートされてなければ、エラーメッセージを表示すると共に、
|
||
戻り値に 1 を返します。
|
||
.TP
|
||
.I \-m
|
||
複数のファイルをひとまとまりしてソートすることで、
|
||
それらをマージします。
|
||
個々のファイルは、あらかじめソートしておかなければなりません。
|
||
ソートはいつでもマージの代わりに動きます。
|
||
マージのオプションがあるのは、単なるマージですむ場合には、
|
||
その方がずっと高速だからです。
|
||
.PP
|
||
入力行は次のようにして比較されます。
|
||
キーフィールドが指定されている時には、
|
||
.B sort
|
||
は、違いが見つかるかキーフィールドがなくなるまで、
|
||
コマンド行で指定された順に、キーフィールド同士を、
|
||
関連づけられた順序オプションに従い比較します。
|
||
.PP
|
||
もしグローバルオプション
|
||
.I Mbdfinr
|
||
のどれかが指定され、キーフィールドが指定されなければ、
|
||
.B sort
|
||
はグローバルオプションにしたがって、行全体を比較します。
|
||
.PP
|
||
すべてのキーが等しい場合
|
||
(または順序を指示するオプションが全く指定されていない場合) 、
|
||
.B sort
|
||
は最終手段として、
|
||
そのマシンでの文字の照合順 (machine collating sequence) にしたがって、
|
||
各行をバイト毎に比較します。
|
||
この最終手段においては、
|
||
.I \-r
|
||
オプションが有効です。
|
||
.I \-s
|
||
(stable) オプションは、この最終手段の比較をやめて、
|
||
全てのキーフィールドが等しい行同士の相対的な出現順を保ちます。
|
||
キーフィールドやグローバルオプションを全く指定しない時には
|
||
.I \-s
|
||
は効果を持ちません。
|
||
.PP
|
||
GNU
|
||
.B sort
|
||
には、入力行の長さの制限 (行に含まれるバイト数の制限) はありません。
|
||
また、入力ファイルの最後の 1 バイトが改行文字でない時には、
|
||
GNU
|
||
.B sort
|
||
は黙って改行文字を補って処理を行います。
|
||
.PP
|
||
環境変数
|
||
.B TMPDIR
|
||
が設定されている場合、
|
||
.B sort
|
||
は、デフォルトの /tmp の代わりに、
|
||
これを作業ファイルを置くディレクトリとして用います。
|
||
.I "\-T tempdir"
|
||
オプションも作業ファイル用ディレクトリの指定に使えます。
|
||
この指定は環境変数よりも優先されます。
|
||
.PP
|
||
以下に示すオプションによって、出力行の順序付けを制御できます。
|
||
これらはグローバルに指定したり、特定のキーフィールドについて
|
||
指定することもできます。
|
||
キーフィールドを指定しない時には、
|
||
グローバルオプションは行全体の比較に適用されます。
|
||
キーフィールドを指定した時には、
|
||
それ固有の指定を持たないキーフィールドに
|
||
グローバルオプションの動作が継承されます。
|
||
.TP
|
||
.I \-b
|
||
ソートキーを見つける時、先頭にある空白を無視します。
|
||
.TP
|
||
.I \-d
|
||
`電話帳順' でソートします。アルファベット、数字、空白以外の文字を無視します。
|
||
.TP
|
||
.I \-f
|
||
英小文字は大文字に直してソートします。
|
||
例えば、`b' は `B' と同様にソートされます。
|
||
.TP
|
||
.I \-i
|
||
ASCII である 040~0176 (8進、両端を含む) の範囲に含まれない
|
||
文字を無視します。
|
||
.TP
|
||
.I \-M
|
||
行先頭にある、空白の後ろに月の英語名の略称が続いた文字列を、
|
||
大文字に変換した上で、
|
||
`JAN' < `FEB' < ... < `DEC' の順で比較します。
|
||
月の名称でない文字列は、月の名称の文字列より小さいと見なされます。
|
||
.TP
|
||
.I \-n
|
||
行先頭にある数字列を、数値として比較します。
|
||
数字列は、空白 (オプション)、マイナス符号 (オプション)、
|
||
0 個以上の数字、小数点と 0 個以上の数字の組 (オプション)
|
||
から構成されます。
|
||
.TP
|
||
.I \-r
|
||
比較結果を逆にし、より大きなキー値を持つ行が出力で
|
||
先に出てくるようにします。
|
||
.PP
|
||
その他のオプションは以下の通りです。
|
||
.TP
|
||
.I "\-o output-file"
|
||
結果を標準出力の代わりに、
|
||
.I output-file
|
||
に出力します。
|
||
.I output-file
|
||
が入力ファイルの 1 つである場合、
|
||
.B sort
|
||
はソートし結果を書き出す前に、
|
||
その入力ファイルを作業ファイルにコピーします。
|
||
.TP
|
||
.I "\-t separator"
|
||
文字
|
||
.I separator
|
||
を、各行でソートキーを決める時のフィールド区切りとします。
|
||
デフォルトでは、空白でない文字と空白文字の間でフィールドを区切ります。
|
||
例えば、` foo bar' という行は、` foo' と ` bar' という 2 つの
|
||
フィールドに分けられます。
|
||
すなわち、入力行 ` foo bar' が与えられた場合、
|
||
.B sort
|
||
は、この行をフィールド ` foo' と ` bar' に分割します。
|
||
フィールド区切りの文字は、その前のフィールドの一部と見なされず、また、
|
||
その後のフィールドの一部とも見なされません。
|
||
.TP
|
||
.I \-u
|
||
デフォルトの場合、および
|
||
.I \-m
|
||
オプションが指定された場合、比較して等しいとされた行のうち
|
||
最初の 1 行だけ出力し、後は出力しないようにします。
|
||
.I \-c
|
||
オプションが指定された場合は、
|
||
同じ内容の行が連続しないことをチェックします。
|
||
.TP
|
||
.I "+POS1 [\-POS2]"
|
||
行の中で、ソートのキーとして使うフィールドを指定します。
|
||
フィールドは、行の中で、位置 POS1 から始まり
|
||
位置 POS2 まで (POS2 は含まず) の部分からなります。
|
||
フィールドの位置と文字の位置は、ともに 0 から数え始めます。
|
||
.TP
|
||
.I "\-k POS1[,POS2]"
|
||
ソートキーを指定するもう 1 つの書式です。
|
||
フィールドの位置と文字の位置は、ともに 1 から数え始めます。
|
||
.PP
|
||
位置の指定は、\fIf\fP.\fIc\fP の形式を持ちます。
|
||
\fIf\fP はフィールド番号の指定であり、
|
||
\fIc\fP は、(\fI+pos\fPの場合) フィールドの先頭から数えた先頭文字の番号、
|
||
あるいは、
|
||
(\fI\-pos\fPの場合) 直前のフィールドの末尾から数えた先頭文字の番号の
|
||
指定です。
|
||
フィールド内の最初の文字を指定する場合には、.\fIc\fP の部分を
|
||
省略することができます。
|
||
.I \-b
|
||
オプションが与えられた場合、フィールド指定の .\fIc\fP の部分は、
|
||
(\fI+pos\fPの場合) そのフィールド内の最初の非空白文字から、
|
||
あるいは、
|
||
(\fI\-pos\fPの場合) 直前のフィールドの後ろの最初の非空白文字から
|
||
数えた位置の指定になります。
|
||
.PP
|
||
引数 \fI+pos\fP や \fI-pos\fP には、オプション文字
|
||
.I Mbdfinr
|
||
を後ろに付けることもできます。
|
||
その場合には、このフィールドにはグローバルな順序づけオプションは
|
||
適用されません。
|
||
.I \-b
|
||
オプションは、\fI+pos\fP と \fI\-pos\fP のそれぞれに独立に
|
||
指定できますが、グローバルな指定が継承される場合には
|
||
両方に指定されたように働きます。
|
||
.I \-n
|
||
または
|
||
.I \-M
|
||
オプションが指定された場合、
|
||
.I \-b
|
||
オプションが暗黙のうちに指定されることになりますが、この
|
||
.I \-b
|
||
オプションは、キー指定の \fI+pos\fP と \fI\-pos\fP の両方に働きます。
|
||
キーは複数のフィールドに跨っても構いません。
|
||
.PP
|
||
上記に加え、
|
||
GNU
|
||
.B sort
|
||
が引数 1 個だけ付けて起動される時には、以下のオプションが
|
||
認識されます。
|
||
.TP
|
||
.I "\-\-help"
|
||
標準出力に使い方のメッセージを表示して正常終了します。
|
||
.TP
|
||
.I "\-\-version"
|
||
標準出力にバージョン情報を表示して正常終了します。
|
||
.SH 互換性
|
||
.B sort
|
||
の歴史的な実装 (BSD や System V) とは、いくつかのオプション、特に
|
||
.IR \-b ,
|
||
.IR \-f ,
|
||
.IR \-n 、
|
||
の解釈が異なります。
|
||
GNU sort は POSIX の動作に従いますが、その動作は、普通 (必ずではない)
|
||
System V の動作と似ています。
|
||
POSIX によれば、
|
||
.I \-n
|
||
は
|
||
.I \-b
|
||
を暗黙に指定しなくなりました。
|
||
整合性を取るために、
|
||
.I \-M
|
||
も同じように変更されました。
|
||
この結果、あいまいな場合には、フィールド指定中の文字の位置の意味が
|
||
影響される場合があるかも知れません。
|
||
この問題にぶち当たったら、対応策は、明示的に
|
||
.I \-b
|
||
を指定することです。
|
||
.SH バグ
|
||
.I \-k
|
||
の有り無しによりフィールド番号の意味が異なるのは混乱の元です。
|
||
この件についてはすべて POSIX が悪いのです。
|