如何在linux终端中打印最频繁的文件行?

时间:2014-09-17 15:01:17

标签: linux file unix terminal

我有文件行:

<host>\t<ip>\n

我需要打印前5个最常见的IP。我怎样才能做到这一点?

例如,如果我需要从此文件中打印3个最常用的IP:

host1   192.168.0.26
host2   192.168.0.26
host3   192.168.0.23
host4   192.168.0.24
host5   192.168.0.26
host6   192.168.0.26
host7   192.168.0.25
host8   192.168.0.26
host9   192.168.0.26
host18  192.168.0.22
host22  192.168.0.22
host24  192.168.0.23

我会打印: 192.168.0.26 192.168.0.22 192.168.0.23

1 个答案:

答案 0 :(得分:0)

以下内容应该有效。请注意,即使有10个具有相同频率的IP,它也会返回5行。

cut -f2 file | sort | uniq -c | sort -n | head -n5