在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
开头的数字生成订单。看来我在这里找不到一些非常基本的东西......
答案 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 文件
它肯定会起作用!!!