在logstash配置过滤器中删除消息字符串的之前和之后的部分

问题描述 投票:0回答:1

消息:/ merlion / dpa2 / cn133ta / j4_sryuo / j4_02_sv_ip

我正在尝试找到一种在消息中定义的字符串之前和之后删除字符串的方法。

在此消息中,常数值为dpa2,我想丢弃dpa2(含)之前的任何内容,以及“ cn133ta /”。只想保留“ j4_sryuo / j4_02_sv_ip”。

cn133ta的位置将是动态值,因此它不是常量字符串。希望有道理。

目前,我已经尝试了以下gsub:

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

但是我很难找到一种丢弃AFTER字符串的方法,在这种情况下为“ cn133ta /”。

谢谢

substring logstash gsub
1个回答
0
投票

您可以使用

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

请参见regex demo

图案详细信息

  • ^-字符串开头
  • [.*?-除换行符以外的任何0+个字符,请尽可能少]
  • [/dpa2/-文字字符串
  • [[^/]+/-1+个除/以外的字符,然后是/
© www.soinside.com 2019 - 2024. All rights reserved.