SORT = ファイルの内容やコマンド出力結果を並べ替えて表示する - Windowsのコマンドプロンプト(bat,cmd)
○Windows XP
ファイルの内容やコマンド出力結果を、並べ替えて表示します。o 常に文字コード順で比較するみたいです。
+ 数値の比較をしたい時は、前に半角空白を入れて、1の位までの文字数を合わせておきます。
+ 数値に正の数と負の数が混在している場合は、さらに工夫が必要になります。
o 比較結果が全く同じ行が複数ある時、並び順はこのコマンドの実装に依存します。
o 1行の長さ制限があります。
+ このコマンドで並び替え出来るのは、1行の長さが「65534文字 + 改行コード」までのデータです。
+ 1行の長さが「4095文字 + 改行コード」を超える時は、/rec オプションを指定します。
**** 書式
--------
sort [ オプション ] 入力ファイル名 [ /t 作業用フォルダー名 ] [ /o 出力ファイル名 ]
もしくは
sort [ オプション ] < 入力ファイル名
もしくは
実行コマンド | sort [ オプション ]
--------
o コマンド名は、大文字小文字のどちらでも大丈夫です。
o オプション = 下記のオプションを、半角空白区切りで並べます。
+ /t と /o だけ後ろにしていますが、これはヘルプの記述に合わせました。
+ Windows XPの場合、オプションの記述場所は、ファイル名の前後どちらでも大丈夫みたいです。
名前 | 記述例 | 意味 |
---|---|---|
/+数字 | /+2 | 比較開始位置(= 文字数)をずらします。 /+2 は2文字目から比較します。 指定した数よりも文字が少ない行は、上に並びます。 |
/l ロケール名 もしくは /locale ロケール名 | /l "C" | ロケールです。文字の比較順序を変更します。 Windows XPでは、大文字の "C" のみ使用可能です。 "C"ロケールは、大文字小文字を区別し、最も高速に比較します、とヘルプの説明にありました。 |
/m 数字 もしくは /memory 数字 | /m 393 | 並べ替えに使うメモリ量(KB 単位)です。 最小 160KBです。 既定では、使用メモリ量を自動調節します。自動調節時の最大使用メモリ量は、入出力の両方がファイルの時、メインメモリの90%まで。そうでない場合は、メインメモリの45%まで、と、ヘルプの説明にありました。 |
/r もしくは /reverse | /r | 降順 = 並び替えの順序を逆にします。 |
/rec 文字数 もしくは /record_maximum 文字数 | /rec 65535 | 行の最大文字数を指定します。 全角文字も1文字と数えます。 最大 65535 = 「65534文字+改行」まで。 指定が無い時の既定値は 4096 = 「4095 文字+改行」 |
/t 作業用フォルダー名 もしくは /temporary 作業用フォルダー名 | /t d:\ミクさん | メモリで処理出来ない時に一時ファイルを作る場所です。 自動実行していて、ドライブの空き容量が心配な時に指定すると安心です。 既定では、システムの一時ディレクトリを使用する、とヘルプの説明にありました。 |
/o 出力ファイル名 もしくは /output 出力ファイル名 | /o c:\ミクさん | 出力ファイル名を指定します。 標準出力をリダイレクトするよりも、このオプションを指定した方が速い、とヘルプの説明にありました。 |
+ ファイルのパスの区切り文字は、UNIXの区切り文字「/」を使う事も出来ます。
+ ワイルドカード(「*」や「?」)は使用出来ません。
+ ファイル名の途中に空白を含む時は、ファイル名を「"」(2重引用符)で括ります。
+ 入力ファイル名を省略し、リダイレクトやパイプからの入力も無い時は、次のように動きます。
+ 並び替えたいデータの入力を待ちます。
+ データの入力終了は、Ctrl + Z(= 「Ctrl」キーを押しながら「Z」キー)
o /t 作業用フォルダー名 = 詳しくは、上記のオプション一覧を御覧下さい。
o /o 出力ファイル名 = 詳しくは、上記のオプション一覧を御覧下さい。
**** 戻り値 ( ERRORLEVELの値。確認分のみ )
o 0 = 成功
+ 「警告: 指定されたメモリ サイズは、小さすぎます。最小値に調節します。」 = /m 160 (単位は KB)に変更しました。
o 1 = 失敗
+ 「無効なスイッチです。」 = オプションの書き方を見直して下さい。
+ 「無効なロケールです。」 = ロケールは、大文字の "C" のみ使用出来ます。
+ 「並べ替え位置は、0 より大きくなければなりません。」 =/+ オプションの数字を1以上にして下さい。
+ 「並べ替えを完了する十分なメモリがありません。」 = /m オプションの値を小さくして下さい。
+ 「レコードの最大長は、65535 を超えられません。」 = /rec オプションの値を小さくして下さい。
+ 「入力ファイルが 2 度指定されました。」 = 空白付きのファイル名などを指定する時は「"」で括ります。
+ 「入力レコードが最大長を超えました。より大きい最大長を指定してください。」 = /rec オプションの値を大きくして下さい。
+ 「c:\ネギ\out.txt指定されたパスが見つかりません。」 = 指定したファイル名やフォルダー名を見直して下さい。
**** 使用例
--------
sort ミクさんのネギ.txt
dir /b c:\ミクさん | sort /r
--------
+ コマンド名やキーワードは、大文字で書く事も出来ます。
**** 機能
o ファイルの内容やコマンド出力結果を、並べ替えて表示します。
o オプションを指定しない時、1行の文字数が「4095 文字 + 改行コード」までのデータを並び替える事が出来ます。
+ 全角文字が含まれていても同じです。
+ 足りない時は、/rec オプションを使います。
o 常に文字コード順で比較するみたいです。
+ 数値の比較をしたい時は、前に半角空白を入れて、1の位までの文字数を合わせておきます。
+ 数値に正の数と負の数が混在している場合は、さらに工夫が必要になります。
+ 例えば、行の先頭に、「数値に大きな数を加えた、必ず正の数になる」列を追加しておく方法があります。
+ もちろん、SORTコマンド以外の外部ツールを使って並び替える方法もあります。
o 行の途中から比較する事も出来ます。
o 比較結果が全く同じ行が複数ある時、並び順はこのコマンドの実装に依存します。
o このコマンドは、入力ファイルを属性に関わらず認識します。
+ 「システムファイル属性」や「隠しファイル属性」のファイルを入力する事が出来ました。
** このコマンドの制限事項
o 1行の最大文字数は、「65534文字 + 改行コード」まで。(= /rec 65535 指定時)
+ 65535文字以上の行が見つかると、エラーになります。
+ 全角文字が含まれていても同じです。
**** 確認したバージョン
o Windows XP Service Pack 3
==
関連ページ:
▼Windowsコマンド。ファイルとフォルダー関連(▼ABC順)
▼Windowsコマンド。プログラム実行関連(▼ABC順)
▼コマンドプロンプト画面
▼制作メモ
▼目次
> COPY = ファイルをコピーする
COPYコマンドの /Aと/Bの意味
> 変数 %0 = 実行中のバッチファイル名、もしくはCALLラベル名
変数 %1 = バッチファイルやCALL文の最初の引数
(2011年9月26日追加。データ中に正負の数が混在している時の並べ方)
(2011年9月25日変更。/tと/oの指定位置について、ヘルプの並び順に準拠)