やりたいこと検索

ファイル内の文字列をアルファベット順に並び替える

 

目次

 

ファイル内の文字列をアルファベット順に並び替える

ファイル内の文字列をアルファベット順に並び替えるには、「sort」コマンドを使います

「sort」コマンドの引数として、並べ替えを行いたいファイル名を指定します。

 

ここでは例として、以下のようなバッチコマンドの一覧ファイル(バッチコマンド一覧.txt)を用意しました。

【バッチコマンド一覧.txt】
ファイル内の文字列をアルファベット順に並び替える 「バッチコマンド一覧.txt」ファイルの内容

何も考えずにランダムにコマンドを並べています。

 

これをアルファベット順に並べたものを表示するには、コマンドプロンプト上で、

と入力します。

以下、実行結果です。

ファイル内の文字列をアルファベット順に並び替える 「バッチコマンド一覧.txt」ファイルの内容をアルファベット順に並べ替えた結果

アルファベット順に並んでいることが分かります。「%」のような記号は、アルファベットよりも前にくるようです。

これをファイル出力するには、「/o」オプションを使って出力ファイルを指定します。以下のコマンドは、「バッチコマンド一覧_アルファベット順.txt」に結果を保存しています。

以下、出力ファイルの内容です。

【バッチコマンド一覧_アルファベット順.txt】
ファイル内の文字列をアルファベット順に並び替える 「バッチコマンド一覧_アルファベット順.txt」ファイルの内容

 

ちなみに、「/o」オプションの代わりに、「>」を使ってもファイル出力が可能です。

 

アルファベット逆順に並び替える

アルファベットの逆順に並び替えるには、「sort」コマンドのオプション「/r」を使用します

前節と同じ「バッチコマンド一覧.txt」を逆順で並び替えてみましょう。

以下、実行結果です。

ファイル内の文字列をアルファベット順に並び替える 「バッチコマンド一覧.txt」ファイルの内容をアルファベット逆順に並べ替えた結果

逆順に並び替えられたのが分かります。

 

2文字目以降で判別する

ここまでは文字列の頭文字で判断し、並び替えを行ってきました。

「sort」コマンドのオプション「/+[数字]」を使えば、文字列の任意の位置で判断を行うことが可能です。

 

例えば、「バッチコマンド一覧.txt」を2文字目で判断して文字列を並び替えるには、

とします。

以下、実行結果です。

ファイル内の文字列をアルファベット順に並び替える 「バッチコマンド一覧.txt」ファイルの内容を2文字目で判断してアルファベット順に並べ替えた結果

文字列の2文字目がアルファベット順になっています。一番上には、2文字目が数字の「%1,%2…」がきています。

 

では、これを、

としたらどうでしょう。

4文字目で並び替えるコマンドです。しかし、「if」や「rem」コマンドなどは、4文字に満たない文字列も存在します。

以下、実行結果です。

ファイル内の文字列をアルファベット順に並び替える 「バッチコマンド一覧.txt」ファイルの内容を4文字目で判断してアルファベット順に並べ替えた結果

どうやら、指定した文字数に満たない文字はアルファベット順に関係なく、上の方にまとめられるようです。しかも、その並びは元のファイルで下部にあった方から並べられています。

参考のため以下に、「バッチコマンド一覧.txt」をもう一度示します。上の表示と見比べてみて下さい。

ファイル内の文字列をアルファベット順に並び替える 「バッチコマンド一覧.txt」ファイルの内容

 

これにオプション「/r」を付けると、付けないときの並びを逆順した表示となります。

以下、実行結果です。予想通りの結果ですね。

ファイル内の文字列をアルファベット順に並び替える 「バッチコマンド一覧.txt」ファイルの内容を4文字目で判断してアルファベット逆順で並べ替えた結果

Windowsバッチファイル初心者へ向けた入門書を作成しました


Windowsバッチファイル初心者の方へ向けた入門書(PDF)を作成しました。


・初めてWindowsバッチファイルを勉強してみようと思っている方

・使ったことはあるが一から基礎を学び直したい方


へ向けて丁寧な解説を行っています。


「全くプログラムを知らない方でも、この入門書を読んだ後には、Windowsバッチファイルの中級者レベルになれるように」をコンセプトに執筆したものです。


この本を読めば、バッチファイルを使ったファイルやフォルダの操作に関しては一通りのことができるようになります。そうなればもう十分中級者と呼べるレベルですので、あとは自分のやりたいことを実現しようとする中で徐々に知識を蓄えていくだけですぐに上級者へなれるでしょう。


詳しくみる

関連ページ

コメントを残す