3/5/89 SORT -- 複数のファイルの結合と並べ替え(作者:J. W. Rider) 書式: SORT [options] [ ... ] 解説:  このユーティリティは MS-DOS に付属している SORT になりか わるものものとなることを意図しています。命令の書式について も MS-DOS の SORT の上位互換になっています。加えて、こちら の SORT では、アルファベットの大文字と小文字を同一視した並 べかえや番号順に並べるといった事もできる上、MS-DOS の SORT よりも大きいサイズのファイルまで処理できます。  オプションは "/"(MS-DOS の標準)または "-"(UNIX の標準) のどちらかを前置します。使用可能なオプションのうち、以下の 2つは MS-DOS 版と互換性があります。 R -- 逆順に並べ替えます。 +n -- n桁目以降を比較対象として各行を並べ替えます。 以下の追加されたオプションも使えます。 +n -- 2つ目の数字の指定は、比較対象として用いられ る桁の終点を示します。"+" の文字は、1番目と 2番目の数字の指定において必須ではありません。 B -- フィールドの先頭の空白文字を無視します。 C -- 1バイト英字の大文字と小文字を同一視します。 (例:"a" = "A") D -- 比較時に1バイト英数字以外の文字を無視します。 F -- 桁の代わりに、"awk" のようなフィールドを比較 対象とします。 H -- 並べ替えた結果のかわりにヘルプメッセージを表 示します。 K -- 比較に用いた値だけを出力し、行全体を出力する ような事はしません。(本当に並べ替えるか決定 する際に役にたちます。) N -- アルファベット順のかわりに数値順に各行を並べ 替えます。 Tc -- "/F" が有効な時、タブやスペースの代わりに文 字 "c" をフィールドの区切りとします。複数の /Tc" オプションを使う事もできます。もしスペ ースやタブもフィールド区切り文字に使いたい時 は、スイッチの後ろに空白をつけて "/T " とし ます。(これは1つ1つのスペースやタブが新し いフィールドを形成する効果を持ちます。2つの スペースの連続は、それらの間に文字のないフィ ールドを形成します。) Copyright 1988, 1989, by J. W. Rider SORT 2 SORT U -- 同一の行の複数の繰り返しを取り除きます。  もし「並べ替え前のファイル」の名前が指定されていないか、 あるいは "-" と指定されていたら、標準入力から読み込みます。  並べ替えられた結果は標準出力に書き出されます。これは DOS の機能を使ってリダイレクトする事ができます。  並べ替えるにあたって、一度にメモリに読み込めない程大きい ファイルというものがあります。この場合、SORT は一部だけ並 べ替えた結果を出力するので、引き続いて SORT が行われれば結 果はもっとよいものになります。「2段」ソートの例は: C>SORT BIGFILE | SORT >BIGSORT SORT: Output may not be completely sorted. (この警告表示は、1段目のソートで表示されます。2回目で警 告が表示されないという事は、2段目でソートが完了したという 事を示しています。) 比較的遅いマシンで、使用可能なメモリも 200KByte しかないよ うな時、2段ソートは 300KByte のファイルの並べ替えを約10 分で完了します。メモリの空きが 450K ある時、同じファイルは 1段ソートで約5分で並べ替えられます。 例: "file1" の中身を並び替えて "file2" に並び替えられた結果を 出力する時: SORT file1 >file2 2つのファイルの中身を結合して、カンマで区切られた2番目の フィールドを使って並び替えるには: SORT -f -t, -2 -3 file1 file2 >file3 カレントディレクトリにある全てのBASICのプログラムを結 合し、行番号順に連続させるには: SORT -n *.bas >outfile 古典的ですが、SORT はディレクトリのファイル名の表示(DIR) を並び替えられます。これは次のようになります: DIR | SORT 拡張子の最初の文字でディレクトリを並び替えるためには: DIR | SORT -10 ファイルのサイズでディレクトリを並び替えるためには: DIR | SORT -13 Copyright 1988, 1989, by J. W. Rider SORT 3 SORT 各ファイルが最後に変更された時刻の「分」を使ってディレクト リを並べ替えるには: DIR | SORT -f -t: -2 バグ:  並べ替えた結果を入力しようとしているファイルに上書きしよ うとすると、データは破壊されるでしょう。"SORT a b >a" とか "SORT a b >b" ということはしないでください。  数字を含んでいない行に対して数値での並び替えを行おうとす ると、予期しない結果を招きます。  数値での並び替えにおいては値に制限があり、これは Borland Turbo Pascal (version 5) compiler の実数型の制限と表現され ることがあります。  同じ値があった場合の各行の元々の並べられていた順番は保存 されません。これは、並べ替えの過程において、重複したデータ を発見するための SORT の能力に影響を与えるからです。  この "SORT" の書式は MS-DOS 版に互換性がありますが、以前 のバージョンの、出力ファイル名は入力ファイルと同時にコマン ドラインで命名される、というものとは互換性がありません。こ のため、入力ファイル名と出力ファイル名を混同する事によりデ ータが失われる恐れはありません。しかしながら、ソートされた データは保存されるだろうと期待されたところに保存されること はありません。 Copyright 1988, 1989, by J. W. Rider