如何使用unix排序对3位数版本进行排序

时间:2015-03-19 21:45:06

标签: sorting

我有一个a.b.c格式的软件版本文件,其中abc是整数。例如

2.10.1
1.10.3
10.4.9
1.9.10 
1.2.30

我试过了:

sort -k 1n -k1,3 -t $'.' versions

这只适用于第一列。如何在第2列和第3列上指定子排序?

1 个答案:

答案 0 :(得分:2)

这会对您提到的版本号进行排序。分隔符设置为.,比较数字为-n,顺序首先从第1列到第1列-k 1,1,第2列从第2列到第2列-k 2,2和第三列从第3栏到第3栏-k 3,3

$ echo '2.10.1
1.10.3
10.4.9
1.9.10
1.2.30' | sort -t '.' -n -k 1,1 -k 2,2 -k 3,3

1.2.30
1.9.10
1.10.3
2.10.1
10.4.9