【发布时间】:2018-03-19 05:28:21
【问题描述】:
我想按出现次数对输入进行排序。但是我不想删除唯一或非唯一行。例如,如果我得到以下输入:
Not unique
This line is unique
Not unique
Also not unique
Also unique
Also not unique
Not unique
我正在寻找一组可以输出以下内容的流水线命令:
This line is unique
Also unique
Also not unique
Also not unique
Not unique
Not unique
Not unique
感谢您提供的任何帮助,我一直在尝试使用 unique 和 sort 的不同组合,但无法弄清楚,解决方案最好是单行。
更新:感谢所有回复的人,尤其是@batMan,他的答案正是我正在寻找的我熟悉的命令。
我仍在尝试学习如何通过管道和使用多个命令来完成看似简单的任务,那么我是否可以调整他的答案以使用 2 列?例如,如果原始输入是:
Notunique dog
Thislineisunique cat
Notunique parrot
Alsonotunique monkey
Alsounique zebra
Alsonotunique beaver
Notunique dragon
我希望输出按第一列排序,如下所示:
Thislineisunique cat
Alsounique zebra
Alsonotunique monkey
Alsonotunique beaver
Notunique dog
Notunique parrot
Notunique dragon
感谢大家提前提供的帮助!
【问题讨论】:
-
你能展示一下到目前为止你尝试了什么吗?我会使用一个简短的 Python 脚本,使用
collections.Counter可能会非常短,但这不适用于纯shell解决方案。
标签: algorithm shell sorting awk uniq