aboutsummaryrefslogblamecommitdiff
path: root/ja_JP.eucJP/man/man1/sort.1
blob: 77582022a52a2631c010f229a0b11c1fa9cdd4e8 (plain) (tree)
1
2
3
4


                                                                                      
                                                      









































































































                                                                             
                                              





































































































                                                                         
























                                                               
.\" %FreeBSD: src/gnu/usr.bin/sort/sort.1,v 1.5.8.1 2001/07/22 11:01:34 dd Exp %
.\"
.\" $FreeBSD: doc/ja_JP.eucJP/man/man1/sort.1,v 1.2 2001/05/14 01:07:28 horikawa Exp $
.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
はそれを作業ファイルを置くディレクトリとして用います。
.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 互換性
.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 が悪いのです。