在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