0

我有这样的日志:

14:40:33.476 [WebContainer : 149] sometihng sometihng 
14:40:33.476 [WebContainer : 149] sometihng sometihng 
14:40:33.476 [WebContainer : 149] sometihng sometihng 
14:40:33.476 [WebContainer : 245] csometihng sometihng 
14:40:33.476 [WebContainer : 245] sometihng sometihng 
14:40:33.476 [WebContainer : 245] sometihng sometihng

我使用nxlog将其发送到kafka,我想要的是将所有带有“WebContainer:149”的行合并为一个,并在此更改时合并下一行,依此类推。

4

1 回答 1

1

您可以使用以下正则表达式来捕获具有特定值的所有行:

/(.*\[WebContainer : (\d+)\]\s*(.*))+\s+.*\[WebContainer : \2\]\s(.*)+\s+.*\[WebContainer : \2\]\s(.*)+/g

正则表达式匹配任意数量的任意字符,直到 ' [WebContainer :',然后匹配任意数字和右方括号,然后再匹配空格。

然后它重新开始(新行),只是在这里它使用捕获组 2 来指定数字。这在第三行重复。

然后将匹配替换为:

$1$3$4

现在您将得到每个数字一行,将'sometihng每行中的 ' 组合起来。

于 2018-11-22T14:27:13.227 回答