NXLOG, как объединить многоканальное регулярное выражение - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть такой журнал:

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" в одну и следующую строку, когда этоизменения и пр.

1 Ответ

0 голосов
/ 22 ноября 2018

Вы можете использовать следующее регулярное выражение для захвата всех строк с определенным значением:

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

Регулярное выражение соответствует любому числу любого символа до '[WebContainer :', затем соответствует любому числу иправая квадратная скобка перед соответствием белым пробелам.

Затем все начинается снова (новая строка), только здесь он использует захват группы 2 для указания номера.Это повторяется в третьей строке.

Затем замените совпадения на:

$1$3$4

Теперь вы получите одну строку на число, объединяя 'sometihng 'с каждой строки.

...