我在以下模式的日志文件中有数据
2014-11-21 14:33:25.8934 [224] IMP orange.at.banana - error occurs this hour @KEY_VALUE_TYPE=' 2014-11-21 14:35:20.8934 [224] IMP orange.at.banana - error occurs this hour @KEY_VALUE_TYPE=' 2014-11-21 15:37:25.8934 [224] IMP orange.at.banana - error occurs this hour @KEY_VALUE_TYPE=' 2014-11-21 15:37:25.8934 [224] IMP orange.at.banana - error occurs this hour @KEY_VALUE_TYPE=' 2014-11-21 15:37:25.8934 [219] IMP orange.at.banana - error occurs this hour @KEY_VALUE_TYPE=' 2014-11-21 15:37:25.8934 [219] IMP orange.at.banana - error occurs this hour @KEY_VALUE_TYPE=' 2014-11-21 15:37:25.8934 [219] IMP orange.at.banana - error occurs this hour @KEY_VALUE_TYPE=' 2014-11-21 15:37:25.8934 [219] IMP orange.at.banana - error occurs this hour @KEY_VALUE_TYPE=' 2014-11-21 15:37:25.8934 [219] IMP orange.at.banana - error occurs this hour @KEY_VALUE_TYPE=' 2014-11-21 15:37:25.8934 [161] IMP orange.at.banana - error occurs this hour @KEY_VALUE_TYPE=' 2014-11-21 15:37:25.8934 [161] IMP orange.at.banana - no error 2014-11-21 15:37:25.8934 [161] IMP orange.at.banana - noerror 2014-11-21 15:37:25.8934 [161] IMP orange.at.banana - error occurs this hour @KEY_VALUE_TYPE=' 2014-11-21 15:37:25.8934 [161] IMP orange.at.banana - no error
我有不同日期的日志文件。我想grep @KEY_VALUE_TYPE ='在每个小时的不同日期(例如14-11-21,14-11-20),也想找到它的数量。
请为此提出一些解决方案。
我尝试使用grep命令并且能够找到@KEY_VALUE_TYPE ='的计数(但不是按小时计算)。目前的日期。
答案 0 :(得分:0)
cat logfile.log | grep "@KEY_VALUE_TYPE='" | sed "s/:.*$//g" | uniq -c
此:
grep
仅查找您想要的行sed
删除除日期和小时之外的所有细节。基本上它表示匹配从第一个冒号到行尾的所有内容,并将其替换为空。uniq
为您提供每小时出现的次数。输出:
2 2014-11-21 14
9 2014-11-21 15
请注意,uniq
需要对您的数据进行排序,但是您使用日志文件并根据时间戳进行计数,它已经排序。否则,您可以在sort
uniq
步骤