如何在大日志文件中按分钟数进行计数?

请帮助! 我有这样的日志文件:

element.scrollTop + element.clientHeight == element.scrollHeight

我需要计算每天每分钟产生多少行,例如:

[AJPRqu92] 2019-11-04 00:01:31,872 INFO   rervice -  signer.setObject(SiocumntObject.getSgnedocumetbect(xmDoctr.getBytes("UTF-8")));,0 .
[AJPeqe2] 2019-11-04 00:01:31,872 INFO   r.ervice -  signatureFactory.newSignedDocumentSerializer(),0 .
[AJPR90] 2019-11-04 00:01:31,965 INFO   roController - <evc:1; cat:4>       . {'ip': 0000,'size(64)': 1208 }
[AJPReq] 2019-11-04 00:01:31,965 INFO   re -  signer.getSignedDocument(),93 .
[AJPequesHaHandlr-10] 2019-11-04 00:01:31,965 INFO   rce -   SignatureFactory,0 .
[AJPequetHandler-RM0] 2019-11-04 00:01:31,965 INFO   ctoService -   UnificationFactory,0 .
[AuesHandlr-R0] 2019-11-04 00:01:31,965 INFO   ua-   ptoPiderParams,CryptoProvider,0 .
[AetHander-Rler-2] 2019-11-04 00:01:31,965 INFO   u.c.tse.scypservices.CryptoService -  signer.getSignedDocument(),93 .
[AJPRequer-RMIallHad-8] 2019-11-04 00:01:31,965 INFO   ru.es.CrSece -  serializer.serialize(sineDocment,bytOtputStream),0 .

如何使用bash做到这一点?

shinyzhuzhu 回答:如何在大日志文件中按分钟数进行计数?

您可以使用awk。

类似:

awk -F"[ :]" '{++a[$2" "$3":"$4]}END{for (item in a){print item,a[item]}}'

这将

  1. 按空格或冒号-F"[ :]"分隔每行
  2. 对于名为a的数组中的每一行,增加从日期时间组成的键的值:{++a[$2" "$3":"$4]}
  3. 文件处理完毕后,将迭代数组并打印键(日期时间)和值(计数)END{for (item in a){print item,a[item]}}
,

我将首先提取所有日期,然后使用for循环对具有相同日期的条目进行计数。

 dates=`cat ~/myLogFile.log | cut -f2 -d" " | uniq`
 for f in $dates ; do value=`grep $f ~/myLogFile.log  | wc -l`; echo "$f - $value" ; done

2019-11-04 - 9
2019-11-05 - 1

如果需要分钟,可以根据日志更改cut语句

dates=`cat ~/myLogFile.log | cut -f2-3 -d" " | cut -f1 -d"," | uniq
本文链接:https://www.f2er.com/3123602.html

大家都在问