2008年3月24日

[linux-users:107956] Locale と sort,comm

久しぶりに cron で実行する sh を書いてはまりました。
テストとcronで結果が違う。
御作法にしたがって PATH と dir を確認したらきちんと fullpathで書いてある。
しばらく悩みましたが、ふと気がついて LANG=C で sortを実行したら cron 通り。

ということで LANG=ja_JP.UTF-8 を設定したらほぼ期待どおり。
そこまでは納得できるのですが、がまだおかしい。
調べたらcomm が。


Windowsが吐き出したCSVから、1フィールド抜き取って新旧システムで比較
というをやっているのですが、日本語のヘッダーがあると以降みな不一致となる。

日本語を UTF に直したファイル au bu の場合は locale が C でも UTF でも同じ。
Windows からの sjis のままのファイル as bs で行うと local UTFだと納得できる
動き。(S-jis を UTF で処理するという無謀はおいておいて)

この comm の動きは bug? 仕様を読み違えている?
mtv

RH Enterplise
sort,comm (coreutils) 5.2.1

$ cat au
ホストID
000ab28d

$ cat bu
ホストID
000ab28d

$ comm au bu
ホストID
000ab28d
ホストID
000ab28d
$ LANG=C comm au bu
ホストID
000ab28d
ホストID
000ab28d

$ comm as bs | s2u
ホストID
ホストID
000ab28d

$ LANG=C comm as bs | s2u
ホストID
000ab28d
ホストID
000ab28d



投稿者 xml-rpc : 2008年3月24日 12:45
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/71329
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。