Develop and Download Open Source Software

OpenSource Downloads

7-Zip  (4,014)  
HandBrake Japanese Language Version  (2,964)  
CrystalDiskInfo  (1,714)  
Boookends  (1,269)  
CrystalDiskMark  (874)  
Tera Term  (825)  
CotEditor  (626)  
FFFTP  (593)  
えこでこツール  (532)  
10  ffdshow  (524)  
11  SMPlayer  (503)  
12  Cabos  (492)  
13  ギコナビ  (475)  
14  Rappelz Server  (471)  
15  MergeDoc  (457)  
More >>

最近ブックマークされた記事

msortでデータをソートする

2008年05月21日 11:40 Ben-Martin(2008年5月19日(月)) 1 2 3
  msort はテキストファイルをソートするためのツールである。インタフェースはコマンドラインとグラフィカルの両方があり、ファイル中の何をソートキーにし、どのようにソートするかを、いくつもの方法のなかから選択できる。

 ほとんどのLinuxシステムにインストールされているGNU sortプログラムと比べたとき、ソートキーの所在指定とソート順指定の柔軟性ではmsortが勝る。また、msortは国際化を重視していて、UTF-8を完全サポートするし、ソートキーごとに異なるロケールを用いてファイルをソートできるし、非西欧式の記数法で表された数値もサポートする。

 msortには、Gutsy(Ubuntu 7.10)、openSUSEFedora 7用のパッケージがあるが、本稿ではバージョン8.44を用いてソースからビルドする。msortビルドにどのような機能を取り入れたいかにより、いくつかの必須もしくは任意の依存関係がある。たとえば、非西欧式の記数法で表された数値を扱うのに、msortはUninumライブラリを使用する。もちろん、この機能が不要なら、Uninumサポートなしでmsortをコンパイルしてよい(Fedora 8といくつかのopenSUSEバージョンにはUninumパッケージがあるが、Gutsyにはない)。msortのグラフィカルインタフェースには、Tcl/Tkiwidgetsライブラリ(GutsyopenSUSE 10.3Fedora 8用がある)が必要である。ソースからmsortをコンパイルするには、通常の「./configure; make; sudo make install」の手順をたどればよい。msortでUTF-8テキストを扱うには2通りのオプションがある。1つはutf8procパッケージを使うことであり、もう1つはlibicuを使うことである。msortの作者は、utf8procでなくlibicuサポートを使ってコンパイルするよう勧めている。

 ソートするデータをレコードに分割することはよく行われる。たとえば、いくつかのテキスト行をソートするとしよう。この場合、各行を1つのレコードとみなして、それぞれの一部をソートキーに指定することができる。たとえば、人名を含んでいるファイルのソートなら、ラストネームに注目して出力の順序を決める、などである。ソートキーだけではデータの完全ソートが保証されないときは、使用できる第2のソートキーを指定しておくとよいだろう。たとえば、第1のソートキーがファイル名のエクステンションなら、第2のソートキーとしてファイル名そのものを使う。こうすると、同じエクステンションを持つすべてのファイルが1つにまとまって出力され、そのファイルどうしの前後関係はファイル名によって決まることになる。

最終更新:2008年07月21日 17:07