[linux-users: 108953] Re: sort や uniq で違う文字が同一視される

Kazuhiro NISHIYAMA zn @ mbf.nifty.com
2013年 10月 31日 (木) 22:50:43 JST


西山和広です。

説明ありがとうございます。

At Thu, 31 Oct 2013 22:28:48 +0900,
bogytech+lu @ gmail.com wrote:

> そうですね。glibc に付属の ja_JP の定義はかなり古いもので、
> EUC-JP を念頭に書いてあって、JIS X 0208 順にソートするよう
> になっています。そのため第三水準やユニコードで増えた文字に
> は対応できていません。

なるほど。

> そこまで調べられたのならば、LC_COLLATEを自分で書いて定義し
> てやるという手は一応あります。ただ真面目にやろうとすると、
> かなり手間ですし、日本語のソート順をどするか(辞書順? JIS
> 文字コード順? ユニコード規定(TR#10,ISO 14651)順?など色々
> と悩ましくなること受けあいです。

そこまで手間をかけて解決したい問題ではなかったので、
ちゃんとした定義は誰か興味のある方にお任せしたいです。

> > とりあえず LC_COLLATE=C にすれば問題はおきないように
> > 見えるのですが、そういう解決方法しかないのでしょうか。
> 
> どのような順番にソートすることをご期待なのかわかりませんが、
> 単純に言語を無視してバイト順でソートしたいだけならば、実は
> LC_COLLATE=C が最も適切な解決策なのではないかと思います。

uniq -c で重複がないのを確認しようとしたら、2以上になることが
あって困ったというのがきっかけなので、ソート順はどうでも
よかったので、 LC_COLLATE=C で対処することにします。


-- 
|ZnZ(ゼット エヌ ゼット)
|西山和広(Kazuhiro NISHIYAMA)


linux-users メーリングリストの案内