在bash中对多个小数进行排序

时间:2016-02-13 21:58:21

标签: linux macos bash sorting

bash sort使用-n选项时,{+ 1}}并未给出预期结果。

$ cat numbers | sort -n
1.0
1.1
1.11.4
1.15
1.3
1.3.3
1.4-p1
1.6.1
2.2.10
2.2.2
2.4
2.4.6

我尝试使用-k1-k1.1n等。{-k1.3n仅对以1开头的数字生成订单。看来我在这里找不到一些非常基本的东西......

4 个答案:

答案 0 :(得分:6)

此版本号-V有一个特殊标志

$ sort -V numbers

1.0
1.1
1.3
1.3.3
1.4-p1
1.6.1
1.11.4
1.15
2.2.2
2.2.10
2.4
2.4.6

PS。此选项在GNU Coreutils中可用,在其他实现中可能会丢失。

答案 1 :(得分:5)

你需要-t。标记以指定'。'作为您的分隔符,多个键位置说明符处理逐渐更长/更深的数字。我仍然不完全清楚它是如何工作的,但是它有效......

PlayingCards

 sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n numbers

答案 2 :(得分:0)

sort -g numbers

会的。根据排序手册页,-g用于数字排序:

  

-g,--general-numeric-sort

     

根据一般数值比较

答案 3 :(得分:0)

试试;

sort -g -k1 文件

它肯定会起作用!!!