The Japanese Manual team(man-jp@jp.FreeBSD.ORG) has translated and keeps maintaining them. Submitted by: Kazuo Horikawa <horikawa@isrd.hitachi.co.jp>
237 lines
6.9 KiB
Groff
237 lines
6.9 KiB
Groff
.TH SORT 1 "GNU Text Utilities" "FSF" \" -*- nroff -*-
|
||
.\" jpman %Id: sort.1,v 1.2 1997/05/21 00:40:39 mutoh Stab %
|
||
.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
|
||
はそれを作業ファイルを置くディレクトリとして用います。
|
||
.I "\-T tempdir"
|
||
オプションも作業ディレクトリの指定に使えます。
|
||
この指定は環境変数よりも優先されます。
|
||
何も指定が無い時は /tmp を使います。
|
||
.PP
|
||
以下に示すオプションによって、出力行の順序を制御できます。
|
||
これらはグローバルに指定したり、特定のキーフィールドについて
|
||
指定する事もできます。
|
||
キーフィールドを指定しない時には、
|
||
グローバルオプションは行全体の比較に適用されます。
|
||
キーを指定した時には、キー毎に特別に指定がある場合を除き、
|
||
グローバルオプションの動作は各キーに継承されます。
|
||
.TP
|
||
.I \-b
|
||
ソートキーを見つける時、先頭にある空白を無視します。
|
||
.TP
|
||
.I \-d
|
||
`電話帳順' でソートします。アルファベット、数字、空白以外の文字を無視します。
|
||
.TP
|
||
.I \-f
|
||
英大文字と小文字の区別をしません。
|
||
.TP
|
||
.I \-i
|
||
ASCII コードの8進で 040~0176 (32~126, 空白から `~'まで) に含まれない
|
||
文字を無視します。
|
||
.TP
|
||
.I \-M
|
||
空白を無視した最初の文字列の先頭から 3 文字を、
|
||
月の英名の略称とみなして (大文字にした上で) 、
|
||
`JAN' < `FEB' < ... < `DEC' の順に大小関係を決めます。
|
||
月の名称でない文字列は、JAN (1月) より小さいと見なされます。
|
||
.TP
|
||
.I \-n
|
||
文字列を、数とみなして比較します。
|
||
数は、空白(option)・\- 記号(option)・数字列・小数点(option)・
|
||
数字列(option)から構成されます。
|
||
.TP
|
||
.I \-r
|
||
比較の順番を逆にします。
|
||
キーの昇順ではなく降順に出力します。
|
||
.PP
|
||
その他のオプションは以下の通りです。
|
||
.TP
|
||
.I "\-o output-file"
|
||
結果を標準出力の代わりに、
|
||
.I output-file
|
||
に出力します。
|
||
出力ファイル名が入力ファイルの一つと同じでも、
|
||
作業ファイルを作って処理するので問題ありません。
|
||
.TP
|
||
.I "\-t separator"
|
||
.I separator
|
||
で指定した文字を、ソートキーを決める時のフィールド区切りとします。
|
||
デフォルトでは、空白でない文字と空白文字の間でフィールドを区切ります。
|
||
例えば、` foo bar' という行は、` foo' と ` bar' という 2 つの
|
||
フィールドに分けられます。
|
||
.\" 一方、
|
||
区切り文字を指定した場合には、その文字はフィールドには含まれません。
|
||
.\" 例えば、``,'' を区切り文字とした場合、``foo,,,bar'' という行は、
|
||
.\" ``foo'' と 2 つの空文字列と ``bar'' の 4 つのフィールドに分かれます。
|
||
.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
|
||
.\" ↓以下のくだりは原文に対応無し -- jpman Sakai
|
||
.\" (\fI-pos2\fP が \fIf\fP だったら pos2 番目のフィールドの
|
||
.\" 先頭文字の直前、すなわち pos2-1 番目のフィールドの終りまでが
|
||
.\" キーになる。
|
||
.\" \fI-pos2\fP が \fIf\fP.\fIc\fP だったら pos2 番目のフィールドの
|
||
.\" \fIc\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 の両方に働きます。
|
||
.\" XXX -M or -n implies -b ?
|
||
キーは複数のフィールドに跨っても構いません。
|
||
.PP
|
||
GNU
|
||
.B sort
|
||
がただ一つの引数をつけて起動される時には、以下のオプションが
|
||
認識されます。
|
||
.TP
|
||
.I "\-\-help"
|
||
標準出力に使い方を表示して正常終了します。
|
||
.TP
|
||
.I "\-\-version"
|
||
標準出力にバージョン情報を表示して正常終了します。
|
||
.SH 互換性
|
||
.PP
|
||
.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 が悪いのです。
|