在bash中使用带-n选项的sort不会给我预期的结果.
- $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开始的数字获得正确的顺序).看来这里有一些我非常基本的东西……
解决方法
你需要-t.用于指定’.’的标志作为您的分隔符,多个键位置说明符处理逐渐更长/更深的数字.我仍然不太确切地知道它是如何工作的,但是它有效……
- sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n numbers
要么
- cat numbers | sort -t. -k 1,4n