首页 > 解决方案 > 当数字相等时按数字排序但不按字母排序

问题描述

我有一个这样的文件:

A 0.77
C 0.98
B 0.77
Z 0.77
G 0.65

我想按降序对文件进行数字排序。我使用了这段代码:

sort -gr -k2,2 file.txt

我得到这个:

C 0.98 
Z 0.77
B 0.77
A 0.77
G 0.65

在我的真实文件中,我有几列具有相同的数字,它们按字母顺序排列。我想要的是在数字相等时按数字排序但不按字母顺序排序,我想获得那些未按字母顺序排序的列:

C 0.98
B 0.77  
Z 0.77
A 0.77
G 0.65

但是任何随机顺序都可以。

标签: linuxbashsorting

解决方案


你可以使用这个sort

sort -k2rn -k1R file

C 0.98
B 0.77
Z 0.77
A 0.77
G 0.65

使用了 2 个排序选项:

  • -k2rn: 第一个排序键是第 2 列;数字,反向
  • -k1R: 第二个排序键是第 1 列;随机的

推荐阅读