首页 > 试题广场 >

有一个文件ip.txt,每行一条ip记录,共若干行,已排好序

[单选题]

有一个文件ip.txt,每行一条ip记录,共若干行,已排好序,下面哪个命令可以实现“统计出现次数最多的前3个ip及其次数”?( )

  • uniq -c ip.txt
  • uniq -c ip.txt | sort -nr | head -n 3
  • cat ip.txt | count -n | sort -rn | head -n 3
  • cat ip.txt | count -n
这题二选一嘿嘿
发表于 2018-08-19 22:08:00 回复(0)
更多回答
瞎了 明明想选C 结果点了B

发表于 2018-08-22 20:19:46 回复(0)
这答题是怎么回事?哪位大神解答一下
发表于 2018-08-22 18:31:18 回复(0)

uniq命令:报告或删去重复行,加上-n参数可以统计重复行出现的次数(放在每行开头)。
sort命令:对文本按行进行排序,-n参数表示根据数字大小排序;-r,对应英文单词是reverse,意思是反转排序结果,sort默认是从小到大排序,加上这个参数可以实现从大到小排序。
head命令:取文件的前一部分(默认输出前10行)。加-n [数字]可以指定到底是前几行。
把这三个命令的作用都搞懂,再加上一点 Linux管道符 的知识,这道题目也就很容易解决了。最好是自己动手在命令行下实践几次,加深印象,容易记牢。

发表于 2018-12-27 09:32:05 回复(1)
本题利用管道符"|"组合多个命令,uniq -c filename用于去除冗余并统计每一行出现的次数。 sort -r指逆序排序,-n指按数字字符串大小排序 head指定数量。 剩下的二选一交给运气_(:з」∠)_
发表于 2018-08-30 08:14:32 回复(6)
本题答案在CentOS 7下有误!
经实测,正确的命令应该为:
sort -nr ip.txt | uniq -c | sort -nr | head -n 3
第一次排序,把ip按顺序排列,因为第二个uniq只会合并相邻项
第二次排序,才是把ip按出现次序大小从大到小排列
最后取前三项结果。
发表于 2018-09-08 14:03:38 回复(5)
vim cnttest
1
1
1
1
1
2
2
2
2
3
3
3
4
4
5
6
7

sort cnttest | uniq -c | head -n 3
5 1
4 2
3 3



发表于 2018-12-10 09:36:19 回复(2)

首先,使用uniq -c命令可以统计并输出每个ip出现的次数,并在每行前面显示次数。这样就得到了每个ip及其出现次数的统计结果。

然后,通过管道将结果传递给sort -nr命令,可以按照出现次数的降序对结果进行排序。

最后,使用head -n 3命令可以取出排序后的结果的前3行,即出现次数最多的前3个ip及其次数。

发表于 2023-09-12 17:45:48 回复(0)
审题 每行一个ip 并且已经排序好了 
发表于 2021-10-10 14:25:47 回复(2)
课后自己实践下才是真理,总觉得答案有问题
发表于 2019-03-08 07:48:11 回复(0)
vky头像 vky
上传题目之前不审查的吗?问题题目一大堆
发表于 2018-09-22 17:44:45 回复(0)
明白了,uniq去重并统计重复次数后,sort进行排序,最后选前三
发表于 2022-07-22 22:56:40 回复(0)
题目已经说了排好序,我这头没看到,马大哈竟是我自己
发表于 2021-08-18 16:57:14 回复(0)
这是个什么鬼,还搞个错误答案,uniq只统计连续行重复的,隔开的行不会统计的。
发表于 2020-07-15 21:52:13 回复(0)
答案是错误的  uniq只有在排好序的时候才有作用
发表于 2019-03-30 16:25:30 回复(1)
uniq 在文本没有排好序的时候是不能查重的,必须先对文本进行排序。sort -r 是按倒序排列,此题也不需要。所有正确答案是sort -n  ip.txt | uniq -c  | head -n 3 
发表于 2019-03-08 22:55:21 回复(0)
cat ip.txt|sort -n|uniq -c|head -n 3
发表于 2018-10-13 17:03:56 回复(0)