一尘不染

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

linux

bash使用sort-n选择不给我预期的结果。

$ 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)。似乎这里有些我很想念的东西…


阅读 246

收藏
2020-06-07

共1个答案

一尘不染

您需要-t。标志以指定“。” 作为分隔符,多个键位置说明符可处理越来越长/更深的数字。我仍然不太清楚它是如何工作的,但是它的工作原理是…

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

要么

 cat numbers | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n
2020-06-07