shell awk统计重复个数

时间:2025-05-04 16:03:37

awk是一个很强大的工具,一个常见的用法就是统计一个文件中重复的列值的个数,这也是面试时面试官经常问的一个问题。

举个例子:

有个文件file.log的内容如下:

http://www.sohu.com/aaa
http://www.sina.com/111
http://www.sohu.com/bbb
http://www.sina.com/222
http://www.sohu.com/ccc
http://www.163.com/zzz
http://www.sohu.com/ddd

统计文件中每个域名出现次数,命令如下

awk -F / '{a[$3]++} END {for(i in a){print i,a[i] | "sort -r -k 2"}}' file.log

输出如下:

http://www.sohu.com 4
http:// www.sina.com 2
http://www.163.com 1