我正在尝试以这种方式对文本文件进行排序:
6 aaa
4 bbb
2 ccc
2 ddd
也就是说,每行以数字降序排列(数字表示右边一个单词的出现次数),并且如果多个单词重复相同的次数,我希望这些单词按字母顺序排序。
我所拥有的:
6 aaa
4 bbb
2 ddd
2 ccc
当我尝试sort -nr | sort -V
时,它会做我想做的事情,但顺序是递增的。
2 ccc
2 ddd
4 bbb
6 aaa
有什么干净的方法可以做到这一点?
答案 0 :(得分:2)
我认为您只需要指定数字反向排序仅适用于第一个字段:
$ sort -k1,1nr file
6 aaa
4 bbb
2 ccc
2 ddd
-k1,1[OPTS]
表示OPTS仅适用于第一字段和第一字段之间。该行的其余部分根据全局排序选项进行排序。在这种情况下,由于没有传递其他选项,因此这意味着默认的字典排序。
答案 1 :(得分:-3)
也许使用tac
? (这里不是shell专家,只是想起一整天...
sort -nr | sort -V | tac