在文件中查找部分重复的行并计算每行重复多少次?

时间:2018-10-25 08:42:36

标签: linux file count grep duplicates

我想计算一下日志文件中有多少重复项。 例如,如果以下是我的日志

[2018-10-17 15:25:24,243] [ERROR] python - Users: Unable to retrieve 1  
[2018-10-17 15:25:24,272] [ERROR] python - Users: Unable to retrieve 2  
[2018-10-17 15:25:24,280] [ERROR] python - Users: Unable to retrieve 3  
[2018-10-17 15:25:24,281] [ERROR] python - Users: Unable to retrieve 2  
[2018-10-17 15:26:45,759] [ERROR] python - CATP: Unable to retrieve 1  
[2018-10-17 15:26:48,432] [ERROR] python - Users: Unable to retrieve 3  
[2018-10-17 15:26:48,460] [ERROR] python - Users: Unable to retrieve 1  

我希望输出为

Users: Unable to retrieve 1 : 3  
Users: Unable to retrieve 2 : 2  
Users: Unable to retrieve 3 : 2

1 个答案:

答案 0 :(得分:0)

如果我没有解释错,那么一行AWK就足够了。

awk '{m[$NF]++} END{for(k in m) print k,"unable to retrieve",m[k]}' test.txt

test.txt是您的日志文件。

这是一个非常简单的单行代码,因为它只检查每行的最后一个字段,对其进行累加并最后打印。