首页 > 解决方案 > sort -n 将 10 放在 9 之前

问题描述

我正在尝试对以下数字进行排序,但总是在 9 之前排序 10。

$ cat disks
1I:1:1
1I:1:3
1I:1:2
1I:1:4
2I:1:5
2I:1:6
2I:1:7
2I:1:8
3I:1:9
3I:1:10
3I:1:12
3I:1:11

使用 sort -n 排序后,如下所示。

$ sort -n -o sorted /tmp/disks
$ cat sorted
1I:1:1
1I:1:2
1I:1:3
1I:1:4
2I:1:5
2I:1:5
2I:1:7
2I:1:8
3I:1:10
3I:1:11
3I:1:12
3I:1:9    ---> wrong sort

请让我知道哪个排序选项可以正确执行此操作?

标签: bashsorting

解决方案


如果您sort支持此选项,则可以使用版本排序:

sort -V -o sorted /tmp/disks

推荐阅读