戻る

GNUのtextutils付属のsortコマンドのマニュアル。

================================
SORT(1)                                                   SORT(1)

名前
       sort - テキストファイルをソートする

書式
       sort  [-cm]  [-bdfginruzM]  [+POS1[-POS2] [-o OUTFILE] [-t
       SEPARATOR] [-k POS1[,POS2] [-T TEMPDIR] [FILE...]

       sort [--help] [--version]

説明
       sort は与えられた各 FILE をソート・マージ・比較する。結 果
       は結合されて標準出力に書き出される。 FILE が一つも与えられ
       ないと標準入力から読み込む。また FILE が `-' だった場合 に
       は、そのファイルには標準入力が用いられる。

       GNU sort は (他の GNU ユーティリティと同じく) 入力ファイル
       の行の長さや、行あたりのバイト数に制限はない。また入力ファ
       イルの最後が改行でなければ、 sort は黙って改行を一つ追加す
       る。

       エラーが起こると、 sort はステータス 2 で終了する。

       環境変数 TMPDIR が設定されていると、 sort は一時ファイルの
       置き場所として、デフォルトの /tmp の代わりにそのディレクト
       リを用いる。オプション -T TEMPDIR でも一時ファイルを 置 く
       ディレクトリを指定できる。オプションは環境変数より優先され
       る。

       -k や + オプションでのソートフィールドの場所指定 は、  F.C
       と いう形式で行う。ここで F は用いるフィールドの番号で、 C
       は先頭の文字の番号を、そのフィールドの先頭 (+POS の 場 合)
       あ るいは直前のフィールドの末尾 (-POS の場合) から数えた数
       字である。 -b オプションが指定されると、フィールド指 定 の
       .C の部分は、そのフィールドの空白でない最初の文字 (+POS の
       場合) あるいは直前のフィールドの末尾以降の空白でない最初の
       文字 (-POS の場合) から数えられる。

       ソートキーのオプションには、出力順序のオプションを追加する
       こともでき、その場合はグローバルな順序オプショ ン は そ の
       フィールドには用いられない。 -b オプションはフィールド指定
       の +POS と -POS のどちらか片方にも、あるいは両方にも、独立
       に効力を及ぼすことができる。 -b がグローバルなオプションか
       ら継承されたものである場合は、両方に影響する。キーは複数の
       フィールドにまたがってもかまわない。

       行のペアは以下のように比較される。キーフィールドが指定され
       ている場合は、 sort は順序オプション (ordering option)  に
       よってコマンドラインから指定された順に、それぞれの行からの
       各フィールドを比較する。比較動作は違いを発見するか全 て の
       フィールドを尽くすまで継続される。

       グローバルオプションの `-bdfinrM' のいずれかが指定されてお
       り、キーフィールドが一つも指定されていない場合は、 sort は
       行全体をグローバルオプションに従って比較する。

       最後に、全てのキーが等しい (あるいは順序オプションがまった
       く指定されなかった) 場合には、 sort は最終手段として、行を
       LC_COLLATE ではなくマシンの照合順序にしたがって 1 バイトず
       つ比較する。この最終手段の比較は -r オプションに従う。  -s
       オ プション (stable オプション) は、この最終手段比較を無効
       にし、全てのフィールドの比較結果が同じだった行の順序を、入
       力 の 順序のままにする。フィールドやグローバルオプションが
       まったく指定されなかった場合は、 -s オプションは無視 さ れ
       る。

オプション
   動作モード
       sort  のデフォルトの動作はソート動作である。これは以下のオ
       プションによって変更できる。

       -c     -c 与えられたファイルがすでにソートされているかどう
              か をチェックする。ソートされていないものがあった場
              合は、エラーメッセージを表示してステータス 1 で終了
              する。それ以外の場合は正常終了する。

       -m      与 え られたファイル群をまとめてソートしてマージす
              る。入力ファイルは事前にそれぞれソートされていな け
              れ ばならない。マージ動作ではなく、ソート動作を複数
              ファイルにまとめて行うこともできる。マージ動作が 提
              供 されているのは、 (これでよい場合は) こちらの方が
              高速だからである。

   出力順序オプション
       以下のオプションは、 sort が行を出力する順序に影響する。こ
       れらはグローバルにも、あるいは特定のキーフィールドの一部と
       しても指定できる。キーフィールドが指定されなければ、グロー
       バルオプションで行全体が比較される。キーフィールド指定がさ
       れた場合、順序オプションが特に指定されなかったフィールドに
       は、グローバルオプションが継承される。

       -b     各行の比較の際に、行頭の空白を無視する。

       -d      「電話帳」順でソートする。アルファベット、数字、空
              白以外のキャラクタをすべて無視してソートする。

       -f     ソートの際に、小文字を対応する大文字と同じに扱 う。
              例えば `b' は `B' と同じとみなされる。

       -g     strtod(3)   を 用いて数値に変換した後、その数値順に
              ソートする。これを用いると、浮動小数点の理工学的 な
              記 法 (`1.0e-34' や `10e100' など) を扱うことができ
              る。このオプションは、他に手段がない場合に限って 用
              い ること。これは -n よりずっと遅いし、有効桁数が多
              すぎると、丸めたかたちで比較されてしまう。さら に、
              倍精度浮動小数点の範囲で扱えない数値は 0 であるかの
              ように処理される。またオーバーフロー・ア ン ダー フ
              ロー・変換エラーは報告されない。

       -i     印字可能でない文字を無視する。

       -n      数値順に評価する。行先頭の文字列 (空白が前置されて
              いても良い) を数値文字列として比較する。数値文字 列
              は、先頭の - 符号 (なくても良い)、 0 桁以上の数字、
              そして小数点と 0 桁以上の数字 (なくても良い) からな
              る。

              sort は浮動小数点表記文字列を、あまり普通でない方法
              で比較する。まず各文字を C の double 方に変換してか
              ら それらの値を比較するのではなく、 2つの文字の基数
              点 (radix point) を揃えて、1 文字づつ比較するのであ
              る。 この方法の利点は速度である。実際この方法は、 2
              つのそれぞれの文字列を double に変換してから比較 す
              るよりずっと速い (あるいは integer 変換に比べてすら
              ずっと速い)。また精度の問題も生じない。多くのシステ
              ム では、文字列を double に変換してから比較する方法
              では、精度は 16 桁に制限されてしまう。

              先頭の `+' や指数表記は認識できない。このような文字
              列を数値的に比較するには -g を用いること。

       -r      比 較 の結果を逆順にする。より大きなキー値を持つ行
              が、より早く現われるようになる。

       -M     行頭の空白文字をすべて無視して最初に現われた 3 文字
              を、 月の名称の省略形とみなして `JAN' < `FEB' < ...
              < `DEC' の順でソートする。小文字は大文字と同じに 扱
              わ れる。月の名称にない文字列は、より低位であるとみ
              なされる。

   その他のオプション
       +POS1[-POS2]
              ソートフィールド指定の obosolete な古い形式。 行 の
              POS1   から POS2 の直前までのフィールドを指定する。
              POS2 は含まない。 POS2 が省略されたら 行 末 ま で。
              フィールドと文字位置はそれぞれ 0 から数えはじめる。

       -k POS1[,POS2]
              ソートフィールド指定の POSIX 形式。今後はこちらが推
              奨 される。行の POS1 から POS2 までのフィールドを指
              定する。 POS2 を含む。 POS2 が省略されたら 行 末 ま
              で。フィールドと文字位置はそれぞれ 0 から数えはじめ
              る。

       -o OUTFILE
              出力先を標準出力から OUTFILE に変更す る。  OUTFILE
              が 入力ファイルのどれかひとつだった場合、 sort はそ
              の入力ファイルを一時ファイルにコピーしてから、 ソー
              トと OUTFILE への出力を行う。

       -t SEPARATOR
              各 行 からソートキーを検索する際、文字 SEPARATOR を
              フィールドのセパレーターにする。デフォル ト で は、
              フィー ルドは空白以外の文字と空白文字の間の空文字列
              (empty string) によって分離される。例えば入力行とし
              て  `  foo  bar' が与えられた場合、 sort はこの行を
              フィールド ` foo' と ` bar' に分離する。フィール ド
              セ パレーターは、その前後のフィールドには含まれない
              ものとされる。

       -u     デフォルトの動作と -m オプションの動作では、等し い
              と された行のうちの最初のものだけを表示する。 -c オ
              プションの動作では、連続した行で等しいものがない か
              どうかをチェックする。

       -z

       -T TEMPDIR
              TEMPDIR  を一時ファイルを置くディレクトリにする。こ
              のオプションは環境変数 TMPDIR より優先される。

       --help 標準出力に使用方法のメッセージを出力して正常終了 す
              る。

       --version
              標準出力にバージョン情報を出力して正常終了する。

例
       o 数値的に降順 (逆順) にソートする。

              sort -nr

       o  アルファベット順にソートし、第 1・第 2 フィールドは無視
       する。キーに開始フィールドとなる 3 だけを指定すれば、各 行
       末までが比較される。

              sort -k3

       o  第 2 フィールドで数値的にソートし、同じになったものを第
       5 フィールドの第 3〜第 4 文字で更にソートする。フィール ド
       の区切りとして `:' を用いる。

              sort -t : -k 2,2n -k 5.3,5.4

       `-k  2,2'   の 代 わりに `-k 2' と指定すると、 sort は第 2
       フィールドから行末までの全ての文字を、プライマリな「数値」
       キーとして扱ってしまう。通常の用途では、1 つ以上のフィール
       ドにまたがったキーを数値的に扱うと、望む結果は得られないだ
       ろう。

       `n' の指定が最初のキーの末尾で行われている点にも注意してほ
       しい。これは `-k 2n,2' や `-k 2n,2n' としても効果は同じ で
       あ る。 `b' 以外の全てのオプション指定は、開始フィールドに
       置いてもキー指定全体の末尾に置いても、指定全体に効果を及ぼ
       す。

       o  パスワードファイルを第 5 フィールドでソートし、先頭の空
       白文字は無視する。第 5 フィールドが同じ値を持つ行は、第  3
       フィールドのユーザー ID で数値的にソートする。

              sort -t : -k 5b,5 -k 3,3n /etc/passwd

       数値比較オプション -n はグローバルに用いても結果は同じ。

              sort -t : -n -k 5b,5 -k 3,3 /etc/passwd

       o 英大文字小文字の違いを無視してソートされた tags ファイル
       を生成する。

              find src -type f -print0 | sort -t / -z -f |
              xargs -0 etags --append

       この `-print0', `-z', `-0' は、改行 (line feed) 文字を含む
       パス名がソート操作によって壊れないようにするためのものであ
       る。

       o 最後の例。フィールドの先頭・末尾の空白群を無視するには、
       第 1 キーの末尾フィールド指定もして、 `b' オプションを使え
       ばよい。

              sort -t : -n -k 5b,5b -k 3,3 /etc/passwd

       あるいはグローバルな指定を -n の代わりに -b にして、 第  2
       キーのオプションに `n' を追加するかたちでもよい。

              sort -t : -b -k 5,5 -k 3,3n /etc/passwd

移植性
       sort  の歴史的な (BSD と System V の) 実装では、いくつかの
       オプション (特に -b, -f, -n) の解釈が異なる。 POSIX に従え
       ば、-n  はもはや -b を暗黙のうちに指定することはない。この
       あたりを首尾一貫させるため、 -M も同様に変更されている。こ
       れによって、曖昧な指定ではフィールド内の文字位置の指定の意
       味が変わってしまうかもしれない。唯一の解決法は、 -b を明示
       的に指定することである。

ロケール
       LC_COLLATE
              (特に他の指定がない限り) 全ての比較で用いられる文字
              の照合順序を指定する。

       LC_CTYPE
              -b, -d, -f, -i といった出力順序オプションの動作に影
              響する。

       LC_NUMERIC
              基数文字と桁区切り文字 (, など) を指定する。

       LC_TIME
              月名のスペルを決める。 -M に影響する。

注意
       プ ログラムのバグについては bug-textutils@gnu.org に報告し
       てください。
       man ページは Ragnar Hojland  Espinosa  
       が作成しました。

GNU textutils 2.0         15 August 1999                  SORT(1)