■Windows版Perlの細道・けもの道
■ナビゲータ
[南北館(最初のメニュー)]
- [Windows版Perlの細道・けもの道]
- [1.準備編]
- [2.基本編]
- [2-1.基本処理]
- [2-2.キーブレイク処理]
- [2-3.マッチング(照合)処理]
- [2-4.ソート(並べ替え)処理]
- [2-4-1.レコード全体のソート(並べ替え)]
- [2-4-2.CSVファイルの文字列型昇順ソート(並べ替え)]
- [2-4-3.CSVファイルの文字列型・数値型/昇順・降順ソート(その1)]
- [2-4-4.CSVファイルの文字列型・数値型/昇順・降順ソート(その2)]
- [2-4-5.大量のCSVファイルのソート(並べ替え)する場合の考慮事項]
- [2-4-6.大量のCSVファイルの文字列型/昇順ソート(並べ替え)]
- [2-4-7.大量のCSVファイルの文字列型・数値型/昇順・降順ソート(並べ替え)]
- [2-5.パターンマッチ処理]
- [3.応用編]
- [スクリプトと入力データのサンプル]
rubyではどう処理する?
同じことをrubyではこうしています。
2.基本編
2-4.ソート(並べ替え)処理
2-4-1.レコード全体のソート(並べ替え)
単純に先頭バイトから始まるデータの内容で並べ替えを行うスクリプトです。固定長のデータを並べ替えるのに適していますが、CSVファイルでもキー項目が1バイト目から始まる項目のみで、長さが一定の場合にも適用できる方法です。
<IN1>は、「$_ = <IN1>」を省略した形式で、「IN1」というファイルハンドルで指定した入力ファイルを「$_」というデフォルトの項目にセットしています。セットした結果を「sort」命令によって並べ替え、「OUT1」というファイルハンドルで指定した出力ファイルから、「print」命令によって出力しています。
【スクリプト】
# sort.pl
# 内容 : ソートプログラム(1バイト目から単純にソートする)
# Copyright (c) 2002 Mitsuo Minagawa, All rights reserved.
# (minagawa@fb3.so-net.ne.jp)
# 使用方法 : c:\>perl sort.pl
#
open(IN1,"input.txt"); #ソート(並べ替え)前のファイル
open(OUT1,">output.txt"); #ソート(並べ替え)後のファイル
print OUT1 sort <IN1>;
close(IN1);
close(OUT1);
【スクリプトとデータのサンプル】
スクリプトはこちらにあります。
入力データのサンプルはこちらにあります。
【入力データ:ソート(並べ替え)前のデータ(input.txt)】
ccc,5555
aaa,7777
bbb,9999
aaa,1111
bbb,3333
bbb,4444
aaa,5555
ccc,1111
【出力データ:ソート(並べ替え)後のデータ(output.txt)】
aaa,1111
aaa,5555
aaa,7777
bbb,3333
bbb,4444
bbb,9999
ccc,1111
ccc,5555
Copyright (c) 2004-2013 Mitsuo Minagawa, All rights reserved.