1
我的Tomcat的日誌建立在這種格式計數錯誤:AWK:tomcat中日誌
[<DATE>] [<COMPONENT>] ERROR_TYPE <ERROR_NAME> - <Rest of line>
哪裏ERROR_TYPE
是a log4j value像DEBUG
或ERROR
。
例如,
[18/Jul/2012:08:53:39 +0000] [component1] ERROR ConnectionTimeOut - ...
[18/Jul/2012:09:54:32 +0000] [component2] DEBUG IPNotFound - ...
[18/Jul/2012:09:54:32 +0000] [component1] TRACE Connected - ...
[18/Jul/2012:08:53:39 +0000] [component1] ERROR ConnectionTimeOut - ...
我想從元組(ERROR_TYPE, ERROR_NAME)
創建映射到出現的次數,例如
ERROR ConnectionTimeOut 2
DEBUG IPNotFound 1
TRACE Connected 1
如何匹配是這樣的:
_anything_ (ERROR|DEBUG|TRACE|WARN|FATAL_spaces_ _another_word_)_anything_
在AWK
,並在括號中只返回一部分?
日誌經常無,所以我不能用這樣的表達式'$ 4'。無論前後發生什麼,我只想匹配兩個字。 – 2012-07-18 10:55:57
'split'函數應該是'split(i,a,SUBSEP)'來獲取索引,而不是值。 – Birei 2012-07-18 11:04:35
@Birei:謝謝。 – 2012-07-18 11:09:07