目次
ファイル内の文字列をアルファベット順に並び替える
ファイル内の文字列をアルファベット順に並び替えるには、「sort」コマンドを使います。
「sort」コマンドの引数として、並べ替えを行いたいファイル名を指定します。
1 |
sort [並べ替えを行いたいファイル名] |
ここでは例として、以下のようなバッチコマンドの一覧ファイル(バッチコマンド一覧.txt)を用意しました。
【バッチコマンド一覧.txt】
何も考えずにランダムにコマンドを並べています。
これをアルファベット順に並べたものを表示するには、コマンドプロンプト上で、
1 |
sort バッチコマンド一覧.txt |
と入力します。
以下、実行結果です。
アルファベット順に並んでいることが分かります。「%」のような記号は、アルファベットよりも前にくるようです。
これをファイル出力するには、「/o」オプションを使って出力ファイルを指定します。以下のコマンドは、「バッチコマンド一覧_アルファベット順.txt」に結果を保存しています。
1 |
sort バッチコマンド一覧.txt /o バッチコマンド一覧_アルファベット順.txt |
以下、出力ファイルの内容です。
【バッチコマンド一覧_アルファベット順.txt】
ちなみに、「/o」オプションの代わりに、「>」を使ってもファイル出力が可能です。
1 |
sort バッチコマンド一覧 > バッチコマンド一覧_アルファベット順.txt |
アルファベット逆順に並び替える
アルファベットの逆順に並び替えるには、「sort」コマンドのオプション「/r」を使用します。
前節と同じ「バッチコマンド一覧.txt」を逆順で並び替えてみましょう。
1 |
sort /r バッチコマンド一覧.txt |
以下、実行結果です。
逆順に並び替えられたのが分かります。
2文字目以降で判別する
ここまでは文字列の頭文字で判断し、並び替えを行ってきました。
「sort」コマンドのオプション「/+[数字]」を使えば、文字列の任意の位置で判断を行うことが可能です。
1 |
sort [/+[数字]] [並べ替えを行いたいファイル名] |
例えば、「バッチコマンド一覧.txt」を2文字目で判断して文字列を並び替えるには、
1 |
sort /+2 バッチコマンド一覧.txt |
とします。
以下、実行結果です。
文字列の2文字目がアルファベット順になっています。一番上には、2文字目が数字の「%1,%2…」がきています。
では、これを、
1 |
sort /+4 バッチコマンド一覧.txt |
としたらどうでしょう。
4文字目で並び替えるコマンドです。しかし、「if」や「rem」コマンドなどは、4文字に満たない文字列も存在します。
以下、実行結果です。
どうやら、指定した文字数に満たない文字はアルファベット順に関係なく、上の方にまとめられるようです。しかも、その並びは元のファイルで下部にあった方から並べられています。
参考のため以下に、「バッチコマンド一覧.txt」をもう一度示します。上の表示と見比べてみて下さい。
これにオプション「/r」を付けると、付けないときの並びを逆順した表示となります。
1 |
sort /r /+4 バッチコマンド一覧.txt |
以下、実行結果です。予想通りの結果ですね。