如何使用 Debian 按数字(逻辑)升序但按字母顺序排序

如何使用 Debian 按数字(逻辑)升序但按字母顺序排序

假设我有一个已解析版本标签的列表,例如

0.2
0.1
0.10
0.9

如果我使用sort我得到(我对吗,这称为整理顺序?)

0.1
0.10
0.2
0.9

如果我想要我期望的数字(逻辑)顺序

0.1
0.2
0.9
0.10

例如,这是我经常接触的一个场景,当我解析软件包版本时,同时我想获取自动安装过程的最新版本。

我怎样才能实现这个目标?

答案1

GNU sort 有-V/--version-sort选项,仅用于排序版本号。它准确地生成您想要的输出,并且还处理多部分版本号,例如0.10.123.

对于该特定数据集,您还可以使用sort -t. -k1,1n -k2,2n.也就是说,告诉sort用作.字段分隔符,然后根据第一个和第二个字段按该顺序进行数字排序。 (-k1n将使用从第一个字段开始的行的其余部分,从而导致不同的结果。)

相关内容