Logstash中如何移除字符串末尾的斜杠(/)?
在Logstash中使用Ruby移除字符串末尾斜杠的解决方案
你的代码没生效主要有两个问题:一是变量名拼写错误(evnet应为event),二是修改后的值没有写回事件中。以下是修正和优化后的实现方式:
基础修正版
先修复拼写错误,补上写回事件的逻辑,同时增加空值/非字符串判断避免报错:
url = event.get("[url]") if url.is_a?(String) && !url.empty? && url[-1] == '/' url.slice!(-1) event.set("[url]", url) end
更简洁的实现(推荐)
单斜杠移除(用chomp)
Ruby的chomp方法专门用于移除字符串末尾的指定字符,只会移除一次,完美匹配你的需求:
url = event.get("[url]") if url.is_a?(String) event.set("[url]", url.chomp('/')) end
多斜杠移除(用正则)
如果需要处理末尾有多个斜杠的场景(比如test///要转为test),可以用正则替换:
url = event.get("[url]") if url.is_a?(String) event.set("[url]", url.gsub(/\/+$/, '')) end
内容的提问来源于stack exchange,提问作者Mor
相关产品推荐
相关产品推荐

