跳到主要内容

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

参考答案:

要统计文件 ip.txt 中出现次数最多的前3个IP及其次数,可以使用 sortuniq 命令结合使用。以下是一个可能的命令:

sort ip.txt | uniq -c | sort -nr | head -n 3

解释如下:

  1. sort ip.txt:首先,对 ip.txt 文件中的IP进行排序,确保相同的IP都相邻。
  2. uniq -c:然后,使用 uniq -c 统计每个唯一IP的出现次数。这会为每个IP添加一个前缀,表示其出现的次数。
  3. sort -nr:再次使用 sort 命令,这次是按数字(-n)进行逆序(-r)排序,这样出现次数最多的IP会排在最前面。
  4. head -n 3:最后,使用 head 命令获取排序后的前三行,即出现次数最多的前三个IP及其次数。

注意:这个命令假设每个IP只在一个地方连续出现,且文件中没有重复的IP行。如果文件中存在重复的IP行,你可能需要先使用 sort | uniq 来去除这些重复行。