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

■ナビゲータ

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

  1. [Windows版Rubyの細道・けもの道]
    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. [スクリプトと入力データのサンプル]

2.基本編

2-4.ソート(並べ替え)処理

これまで解説してきたキーブレイク処理やマッチング(照合)処理では、キー項目の順に(通常は)昇順で各レコードが並んでいることが前提となっています。しかし、Windowsでは、Unixと異なり、シェルコマンドに「sort」という便利なプログラムは存在しませんし、そもそも大艦巨砲主義のWindwosでは、小さなプログラムをパイプでつなげて処理していくという発想がないため、今後も開発される可能性は少ないと考えられます。

したがって、一般的には、Excel等の表計算ソフトを利用して、ソート(sort:並べ替え)処理を行うことになりますが、並べ替えのキーが一度に3項目までしか指定できないため、操作性は必ずしも良くありません。また、Excelはファイルを開いたときに数値項目等を勝手に変換してしまうのも、使い勝手を悪くしている原因です。

そこで、Rubyを使ってソート(sort:並べ替え)処理を行う方法を以下、説明します。なお、この基本編では、キーブレイク処理やマッチング(照合)処理で利用するためにソート(sort:並べ替え)処理を行う場合を想定し、データ構造が文字列型で、昇順で並べ替えるケースや数値項目を並べ替えるケース、さらに降順で並べ替えるケースについて説明していきます。

目次

ソート(並べ替え)処理の具体的な内容については、以下の各項目を参照してください。

  1. [2-4-1.レコード全体のソート(並べ替え)]
  2. レコード全体を対象に並べ替えを行う簡易的なソート(並べ替え)処理について解説します。

  3. [2-4-2.CSVファイルの文字列型昇順ソート(並べ替え)]
  4. CSVファイルの文字列型データを昇順に並べ替える方法について解説します。

  5. [2-4-3.CSVファイルの文字列型・数値型/昇順・降順ソート(その1)]
  6. CSVファイルのソート処理(文字列型・数値型の昇順・降順あり)について解説します。こちらはrubyのあるsortメソッドを利用しています。

  7. [2-4-4.CSVファイルの文字列型・数値型/昇順・降順ソート(その2)]
  8. CSVファイルのソート処理(文字列型・数値型の昇順・降順あり)について解説します。こちらは挿入ソートのロジックを利用しています。

  9. [2-4-5.大量のCSVファイルのソート(並べ替え)する場合の考慮事項]
  10. 大量のCSVファイルのソート(並べ替え)処理する場合の手順とソート(並べ替え)処理するための準備処理として、ソート(並べ替え)キーごとの件数と累計件数を出力するスクリプトについて解説します。

  11. [2-4-6.大量のCSVファイルの文字列型/昇順ソート(並べ替え)]
  12. 大量のCSVファイルの文字列型データを昇順に並べ替える方法について解説します。

  13. [2-4-7.大量のCSVファイルの文字列型・数値型/昇順・降順ソート(並べ替え)]
  14. 大量のCSVファイルのソート処理(文字列型・数値型の昇順・降順あり)について解説します。こちらはPerlにあるsort関数を利用しています。




Copyright (c) 2004-2013 Mitsuo Minagawa, All rights reserved.