Answers:
您可以使用内置命令轻松完成此操作。
sort
。下一步需要这个。uniq -c
。它将计算每行的唯一出现次数。如果相似的线不相邻,那么如果不先进行排序就无法工作。sort
,后者现在以相反的顺序(r
)并根据输出的数字(n
)解释进行排序uniq
。我们需要数字选项,因为否则,数字前面的空格会导致错误的结果(有关更多信息,请参见GNU sort
的帮助)。head
。该命令将是:
sort test.txt | uniq -c | sort -rn | head -n 12
此处的输出包含实际发生的次数。
要仅获取原始行列表,可以将输出传递给sed
:
sort test.txt | uniq -c | sort -rn | head -n 12 | sed -E 's/^ *[0-9]+ //g'
I'm not there very often
I'm not there very often
Look at me!
Look at me!
Look at me!
Hello there!
Hello there!
Hello there!
Hello there!
Hello there!
Hello there!
第一个命令的输出,但只能从中选择2个head
:
6 Hello there!
3 Look at me!
第二个命令的输出:
Hello there!
Look at me!
uniq
。
sort -rn
使用由产生的每一行旁边的数字作为排序字段,以相反的顺序进行排序uniq -c
?我认为k1
将使用类似的东西
r
反转,并n
根据产生的数字进行数字排序uniq
。你到底是什么意思k1
?
man
并且我了解-k
必须使用某种语法来选择要进行排序的字段