我试图在日志文件中grep所有发生的异常(我事先不知道异常)并评估它们的出现次数。下面是一个示例来阐明我试图实现的目标:
考虑以下日志文件:
org.hibernate.exception.SQLGrammarException: ...
org.springframework.web.client.ResourceAccessException: I/O error: ...
org.springframework.web.client.HttpServerErrorException: ...
org.springframework.mail.MailSendException: ...
org.springframework.mail.MailSendException: ...
org.hibernate.exception.SQLGrammarException: ...
当然,日志文件不仅包含包含异常的行,因此还有一些我不感兴趣的内容(警告、信息等)
我想得到以下输出(完全限定的异常名称和出现次数,顺序无关):
org.hibernate.exception.SQLGrammarException 2
org.springframework.web.client.ResourceAccessException 1
org.springframework.web.client.HttpServerErrorException 1
org.springframework.mail.MailSendException 2
我想出了以下 grep 命令/模式来查找所有异常,但我无法选择匹配组以进一步计算出现次数:
grep -ioP --color "^[.*\.?]*(.*Exception):" myLogFile.log
任何建议表示赞赏。:)