2013-11-14 35 views
3

出於某種原因,在我的機器上似乎破壞了負浮點數與awksort的比較。這似乎是-0.1 < -0.2使用awk或排序不正確排序負浮點數

當我嘗試使用sort -n test.dat

0.2 
-0.1 
-0.2 
0.1 
0 

排序,我得到的

-0.1 
-0.2 
0 
0.1 
0.2 

代替

-0.2 
-0.1 
0 
0.1 
0.2 

我出什麼問題了?

回答

3

答案:你是法國人!

在法語中,小數點是逗號(,)而不是點(.)。您需要用逗號替換點或更改您的語言環境。

嘗試LC_NUMERIC=us_EN.UTF-8 sort -n test.dat,你應該得到預期的結果。

對於您的信息,LC_NUMERIC是一個環境變量,其中包含用於格式化非貨幣數字的區域設置。

+0

+1:哈哈,非常好的第一句話^^(我也是法語的^^) –