You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Logstash中使用gsub移除特定字符后的指定模式

在Logstash中使用gsub移除特定位置的HMAC字符串

问题场景

原始日志内容:

13-12-2022 `ACTIVITY-LOG` 20108 `The is my sample HMAC message`HMAC HMAC HMAC

期望处理后结果:

13-12-2022 `ACTIVITY-LOG` 20108 `The is my sample HMAC message`

尝试过以下代码,但会替换所有HMAC实例,不符合需求:

mutate {
  gsub => [ "message", "HMAC", "" ]
}

需要实现的是只移除最后一个反引号`之后出现的HMAC(包括其附带的空格)。

解决方案

使用带有正则断言的gsub配置,精准匹配目标位置的内容进行替换:

mutate {
  gsub => [ "message", '(?<=`)(HMAC\s*)+$', '' ]
}

正则说明

  • (?<=):正向零宽断言,确保匹配的内容前面紧邻一个反引号,不会影响引号内的HMAC
  • (HMAC\s*)+$:匹配行尾处所有连续的HMAC字符串(每个HMAC后可能跟随空格),+表示匹配一次或多次重复的该模式
  • 替换为空字符串后,就会保留引号内的HMAC,仅移除最后一个引号之后的所有HMAC内容

另外也可以用捕获组的方式实现,效果一致:

mutate {
  gsub => [ "message", '^(.*`[^`]+`)(HMAC\s*)+$', '\1' ]
}
  • ^(.*[^`]+`)`:捕获从行首到最后一个反引号及其内部内容的所有部分
  • (HMAC\s*)+$:匹配最后一个引号之后的所有HMAC内容
  • 替换为捕获组\1,即保留前面的内容,丢弃后面的HMAC部分

内容的提问来源于stack exchange,提问作者abhisheknayak777

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 10:35:40