このエントリーをはてなブックマークに追加


ファイルまたは標準入力の並び替え・sortコマンド

sortコマンドにより行単位で標準入力またはテキストファイルの並び替えをすることができます。
以下にsortコマンドの使用例を記します。


標準入力から受け取った情報のソートとファイル名を指定してソート

以下に標準入力を使用した例とテキストファイルを指定した例を記します。

使用したpref.txtファイルの内容は以下の通りです。

C:\Users\sakura\Desktop>type pref.txt
Hokkaido
Aomori
Iwate
Miyagi
Akita
Yamagata
Hukusima
Ibaraki
Tochigi
Saitama
Chiba
Tokyo

標準入力の内容をソート

標準入力の内容をソートするには以下のようにします。

コマンド | sort

最初のコマンドは標準出力されるコマンドになります。
以下の例は、pref.txtファイルをtypeコマンドで標準出力に出力しパイプ(|)によりsortコマンドに渡しています。

標準入力からの受け取った情報のソートは以下のようになります。

C:\Users\sakura\Desktop>type pref.txt | sort
Akita
Aomori
Chiba
Hokkaido
Hukusima
Ibaraki
Iwate
Miyagi
Saitama
Tochigi
Tokyo
Yamagata

ファイル名を指定してソート

標準入力の内容をソートするには以下のようにします。

sort ファイル名

ファイル名を指定したソートは以下のようになります。

C:\Users\sakura\Desktop>sort pref.txt
Akita
Aomori
Chiba
Hokkaido
Hukusima
Ibaraki
Iwate
Miyagi
Saitama
Tochigi
Tokyo
Yamagata

逆順で並び替え

逆順で並び替える場合は、/Rオプションを利用します。
(Rは大文字小文字のどちらでも同じ動作になります。)

尚、以下の構文で同じ動作となります。

コマンド | sort /r
sort /r ファイル名
sort /reverse ファイル名

/R/REVERSEと記述することも可能です。

以下に/Rオプションを指定して実行した例を記します。

C:\Users\sakura\Desktop>type pref.txt | sort /r
Yamagata
Tokyo
Tochigi
Saitama
Miyagi
Iwate
Ibaraki
Hukusima
Hokkaido
Chiba
Aomori
Akita

何文字目以降でソートする方法

オプション+数字で指定した文字以降でソートすることが可能です。
今回も上記のpref.txtを利用してソートしてみます。

以下の例は2文字目以降を対象にソートした例です。 Saitama, Yamagata, Ibarakiなどが上位になっているのが確認できます。

C:\Users\sakura\Desktop>sort /+2 pref.txt
Saitama
Yamagata
Ibaraki
Chiba
Miyagi
Akita
Tochigi
Hokkaido
Tokyo
Aomori
Hukusima
Iwate

使用場面としては、固定長のテキストファイルなどで特定カラムからソートしたい場合などで有効に利用できると思います。

出力先を指定する/Oオプション

リダイレクト(>)でも同様のことが実現できますが、/Oオプションにより出力ファイル名を指定できます。
以下、/Oオプションを使用した例です。
/Oオプションの後ろに出力ファイル名を指定します。

C:\Users\sakura\Desktop>sort pref.txt /o pref_sort.txt

C:\Users\sakura\Desktop>type pref_sort.txt
Akita
Aomori
Chiba
Hokkaido
Hukusima
Ibaraki
Iwate
Miyagi
Saitama
Tochigi
Tokyo
Yamagata


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:49:29