如何按列排序并随机打破关系

How to sort by column and break ties randomly

我有一个包含三列的制表符分隔文件,如下所示:

joe W 4
bob A 1
ana F 1
roy J 3
sam S 0
don R 2
tim L 0
cyb M 0

我想通过减少第三列中的值来对这个文件进行排序,但是为了打破平局我不想使用其他列来这样做(即不使用第一列来对具有相同条目的行进行排序第三列)。

相反,我希望具有相同第三列条目的行保留原始顺序,或者随机排序。

有没有办法在 unix 中使用 sort 命令来做到这一点?

sort -k3 -r -s file 

这应该会为您提供所需的输出。 -k3 表示第 3 列,-r 将按降序排序,-s 将禁用使用其他选项打破平局。