目次
「sort」コマンドの使い方と逆順へ並び替え
「sort」はファイルの中身やファイル・フォルダ名を並び変えるコマンドです。
ファイルの内容を並び変える
「sort」コマンドを使ってファイル内の文字列を並び替えるには、「sort」コマンドの引数として並び替えの対象ファイルを指定します。
1 |
sort [ファイル名] |
例として、以下のファイル(Europe.txt)の内容を並び替えます。
【Europe.txt】
以下のコマンドをコマンドプロンプトへ入力します。
1 |
sort Europe.txt |
以下、実行結果です。
アルファベット順に並び替えられていることが確認できます。
ファイル名やフォルダ名を並び替える
「sort」コマンドは現在いるフォルダ内に存在するファイルやフォルダを並び替えて表示することなどもできます。
フォルダ内のファイル・フォルダを対象に並び替えを行うには、パイプ処理「|」で他のコマンドから並び替えの対象を引き渡す必要があります。以下のような形です。
1 |
[他のコマンドで並び替えの対象を得る] | sort [オプション] |
パイプ処理については、「パイプについて -コラム-」が詳しいのでご参照下さい。
例えば、「dir /b」はファイル名の一覧を取得するコマンドですが、これをtxtファイルを対象に実行したとき、すなわち以下のコマンドを実行したとき、
1 |
dir /b *.txt |
以下のファイル一覧を取得できるとします。
現在のフォルダにはこれら5つのファイルが存在しているということです。
これを、「sort」コマンドに渡して表示するには、パイプ処理「|」を使って、
1 |
dir /b *.txt | sort |
と書きます。以下実行結果です。
今の場合、得られる結果は「sort」コマンドを使わなくても同じですが、一度「sort」コマンドに引き渡されているため、表示のプロセスは異なっています。次節から表示順を変化させる方法について述べていきます。
逆順に並べる
前節で行った「sort」コマンドによる表示は、
のように、ファイル名の先頭に付いている数字の小さい方から昇順に並んでいます。
これを数字の大きい方からに並びかえるには、「sort」コマンドに「/r」オプションを指定します。
1 |
dir /b *.txt | sort /r |
このように、「/r」コマンドはファイル名を逆順に並べるオプションです。
ここでは、数字について例を出しましたが、アルファベット順で昇順であれば、「a」から始まり「z」で終わる順番で並びます。「/r」オプションを指定すると逆順です。
並び替えのための判定文字を後ろにずらす
並び替えのために判定する文字は通常、ファイル名の先頭に近い位置から優先されます。前節の例では、以下の五つのファイル、
01_file_e.txt
02_file_d.txt
03_file_c.txt
04_file_b.txt
05_file_a.txt
を対象に行われましたが、全てのファイルの先頭の文字は「0」と等しいため、2文字目の「1~5」が判定文字となりました。
これをファイル名の最後の文字(9文字目)である「e~a(拡張子(.txt)の直前の文字)」で判定するようにします。このためには、「/+[数字]」オプションを指定します。[数字]には、判定を始める文字数を指定しそれ以降の文字で判定し並べ替えます。
今の場合は、9文字目で判断したいので、コマンドは、
1 |
dir /b *.txt | sort /+9 |
となり、実行結果は、
となります。9文字目が「a~e」のアルファベット順で並んでいることが分かります。