Удалить часть строки сообщения ДО и ПОСЛЕ в logsta sh config filter - PullRequest
1 голос
/ 22 февраля 2020

Сообщение: /merlion/dpa2/cn133ta/j4_sryuo/j4_02_sv_ip

Я пытаюсь найти способ удалить строки ДО и ПОСЛЕ определенной строки в сообщении.

В этом сообщении постоянное значение равно dpa2 , и я хочу отказаться от чего-либо до dpa2 (включительно) и "cn133ta /". Только хочу сохранить "j4_sryuo / j4_02_sv_ip".

Позиция cn133ta будет иметь значение Dynami c, поэтому она не является константной строкой. Надеюсь, это имеет смысл.

В данный момент я попробовал gsub ниже:

mutate { gsub => [ "dir_path", "/[^./]+/tpa2/", "/" ] }

Но у меня возникают проблемы с поиском способа отбросить строку AFTER, в этом случае " cn133ta /".

Спасибо

1 Ответ

0 голосов
/ 22 февраля 2020

Вы можете использовать

mutate { gsub => [ "dir_path", "^.*?/dpa2/[^/]+/", "" ] }

См. Демонстрационную версию regex

Если подпункт dpa2 находится сразу после первой подпрограммы, используйте ваш подход,

^/[^/]+/dpa2/[^/]+/
 ^^^^^^

См. это демонстрационное регулярное выражение .

Детали шаблона

  • ^ - начало строки
  • .*? - любые 0+ символов, кроме символов разрыва строки, как можно меньше
  • /dpa2/ - буквенная строка
  • [^/]+/ - 1+ символов, кроме / и затем /.
...