単純に先頭バイトから始まるデータの内容で並べ替えを行うスクリプトです。固定長のデータを並べ替えるのに適していますが、CSVファイルでもキー項目が1バイト目から始まる項目のみで、長さが一定の場合にも適用できる方法です。
Rubyでは、「sort」メソッドはArrayクラスのインスタンスに対して行うため、入力データは「readlines」メソッドによって、一度に全データを読み込み、「in1_file」にセットしています。あとは「in1_file」を並べ替えながら、「print」メソッドによって、出力しています。
# sort.rb
# 内容 : 先頭バイトからの単純なソート
# Copyright (c) 2002-2015 Mitsuo Minagawa, All rights reserved.
# (minagawa@fb3.so-net.ne.jp)
# 使用方法 : c:\>ruby sort.rb
#
# 入力ファイルを全部読み込む。
in1_file = IO.readlines("input.txt")
# 出力ファイル
out1_file = open("output.txt","w")
# ソートして、ファイルを出力
out1_file.print in1_file.sort,"\n"
# ファイルのクローズ
in1_file.close
out1_file.close
ccc,5555
aaa,7777
bbb,9999
aaa,1111
bbb,3333
bbb,4444
aaa,5555
ccc,1111
aaa,1111
aaa,5555
aaa,7777
bbb,3333
bbb,4444
bbb,9999
ccc,1111
ccc,5555