假设我有一个已解析版本标签的列表,例如
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
将使用从第一个字段开始的行的其余部分,从而导致不同的结果。)