■Windows版Perlの細道・けもの道

■ナビゲータ

[南北館(最初のメニュー)]

  1. [Windows版Perlの細道・けもの道]
    1. [1.準備編]
    2. [2.基本編]
      1. [2-1.基本処理]
      2. [2-2.キーブレイク処理]
      3. [2-3.マッチング(照合)処理]
      4. [2-4.ソート(並べ替え)処理]
        1. [2-4-1.レコード全体のソート(並べ替え)]
        2. [2-4-2.CSVファイルの文字列型昇順ソート(並べ替え)]
        3. [2-4-3.CSVファイルの文字列型・数値型/昇順・降順ソート(その1)]
        4. [2-4-4.CSVファイルの文字列型・数値型/昇順・降順ソート(その2)]
        5. [2-4-5.大量のCSVファイルのソート(並べ替え)する場合の考慮事項]
        6. [2-4-6.大量のCSVファイルの文字列型/昇順ソート(並べ替え)]
        7. [2-4-7.大量のCSVファイルの文字列型・数値型/昇順・降順ソート(並べ替え)]
      5. [2-5.パターンマッチ処理]
    3. [3.応用編]
    4. [スクリプトと入力データのサンプル]
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.