bash - 如何处理 bash 的平局条件

标签 bash sorting

我想按名称和计数对文件进行排序。如何根据计数进行降序排序,并在遇到平局时按升序对名称进行排序?

例如:

a 31
b 82
d 21
l 31
o 21

b 82    
a 31
l 31
d 21
o 21

我尝试使用sort -k 2r -n -t $'\t'输出-o输出但它不起作用。 有人可以帮我解决这个问题吗?

最佳答案

您可以使用:

sort -t $'\t' -k2rn -k1 file

b 82
a 31
l 31
d 21
o 21

排序选项:

-t $'\t'    # use tab as field delimiter 
-k2rn       # first sort on reverse numeric order on field2
-k1         # then sort on natural (alphabetic) order of field1

关于bash - 如何处理 bash 的平局条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39420589/

相关文章:

linux - 将自动输入发送到 bash 中另一个脚本调用的脚本

java - 如何在Linux中执行Shell脚本?

c++ - 按姓氏然后名字对结构进行排序

ios - 在 Objective C 中以正确的顺序对数组列表进行排序

c++ - 从 C++ 中的系统函数获取一个整数(大于 255)

linux - 使用变量时 Sed 替换不起作用

java - 根据加在一起的字母值对字符串进行排序。 ( java )

r - 使用 R 中的外部因素排序对数据框进行排序

java - 多线程快速排序或归并排序

linux - 在 bash 顶部添加 html 注释