Sort

如何在 unix shell 中對數字進行排序?

  • January 19, 2021

如何使用排序命令對這些數字進行排序。

10
11
12
1
13
14
15
16
17
18
19
20
21
2
22
3
4
5
6
7
8
9
X
Y

正如@terdon 所注意到的,包含XY以及數字從 1 到 22 的事實將其辨識為可能的人類染色體列表(這就是他說染色體M(線粒體)可能缺失的原因)。

要對數字列表進行排序,通常會使用sort -n

$ sort -n -o list.sorted list

wherelist是未排序的列表,並且list.sorted將是生成的排序列表。

使用-n,sort將對其輸入執行數字排序。但是,由於某些輸入不是數字,因此結果可能不是預期的;X並且Y將出現在排序列表中的第一個,而不是最後一個(性染色體通常列在 22 號染色體之後)。

但是,如果您使用sort -V(用於“版本排序”),您實際上會得到您想要的:

$ sort -V -o list.sorted list
$ cat list.sorted
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
X
Y

如果您確實添加,這可能仍然不起作用,M因為它會在之前X而不是最後進行排序(我相信這是它通常的呈現方式)。

引用自:https://unix.stackexchange.com/questions/355266