前几天去面试,有问到一个统计日志文件中出现的某个IP数量问题,还有排序,我答不上来,因为我确实不知道。所以特地回来学了一下。
首先是统计某个记录的次数:
这是我的一个文件test.txt,里面有这些IP,我想算一下这里面210.242.125.35这个IP出现了多少次,就可以使用 WC命令
cat test.txt | grep 210.242.125.35 |wc -l 结果:
得出了4次。
好,现在你知道怎么去统计次数了,但是你想统计所有的IP,并且让他们按次数倒叙排列怎么实现呢?我们来看看:
grep -i -o -E "([0-9]{1,3}\.){3}[0-9]{1,3}" test.txt | sort -n | uniq -c | sort -n -r | head -6
从命令上可以理解过来,通过正则查找文件内的IP,然后排序,去重统计,再根据数量倒序,最后取最前的6个。sort是排序,uniq是去重。
&nbs