2011-08-17 18 views
2

私はMac OS XとUbuntu Linuxの両方でsortを使用していますが、大文字/小文字の異なる処理が行われています。マックOS X上で異なるバージョンのUNIXソートハンドルの違いが異なります

sort (GNU coreutils) 5.93は私が期待する行動を与える:Ubuntuで

$ sort <<EOF 
> Aa 
> aa 
> Ab 
> ab 
> EOF 
Aa 
Ab 
aa 
ab 

を、sort (GNU coreutils) 8.5はケースを無視するようだ:

$ sort <<EOF 
> Aa 
> aa 
> Ab 
> ab 
> EOF 
aa 
Aa 
ab 
Ab 

は、この動作を無効にする方法はありますか?大文字と小文字を区別する必要があります。 LOCALECに変更しようとしましたが、何も変更されませんでした。

あるいは、各行をバイト文字列として扱う大きなファイルをソートする他の簡単なユーティリティはありますか?

+0

興味深い。 PerlやPythonで必要な 'sort 'を書くには5行が必要だと思います。そのような解決策があなたに受け入れられるのであれば、おそらく誰かがそれを答えとして寄付することができます。 –

+0

UNIX 'sort'は外部ソートを行うため、RAMに収まらないファイルをソートする必要があります。私はあなたがPerlの5行でそれを行うことができるとは思わない:) –

+0

ああ、それはあなたが "大きな"を意味するものです。その後、それを明確にするのは良いことです。 –

答えて

2

POSIXを使用してみてください: 'export LANG = POSIX'

+0

これは私のためには機能しません(Ubuntu 10.04.3 LTS)。 –

+1

ありがとう、これはトリックです! –

+0

あなたは大歓迎です;)LANGをPOSIXに設定すると、文字は ASCIIエンコードされています。いくつかのLinuxディストリビューションでは、rootユーザーはLANGがPOSIXに設定されており、通常ユーザーは .UTF-8を使用します。 – svacko

関連する問題