正则表达式删除filebeat中的syslog日期?

时间:2016-10-20 15:06:16

标签: regex filebeat

我想解析一些他们看起来像

的系统日志行
  

Oct 20 16:34:59 artguard TTN-xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

我想把它们变成

  

TTN-xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

所以我想知道正则表达式应该如何允许我这样做,因为第一部分每天都会改变,因为它被syslog附加。

编辑:为避免重复,我尝试将REGEX与filebeat一起使用,其中不支持所有正则表达式,如here所述

2 个答案:

答案 0 :(得分:1)

正则表达式TTN-\S*可能是一种做你正在寻找的方法,这里是一个java脚本示例。



 var value = "Oct 20 16:34:59 artguard TTN-xxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
var matches = value.match(
     new RegExp("TTN-\\S*", "gi")
);
document.writeln(matches);




它有两个主要部分:

  1. TTN-匹配TTN-(显然)
  2. \ S *匹配任何不是空格的字符,这是尽可能多次完成的。
  3. 目前,人们总是希望小提琴能够成为' - '在TTN之后,但如果你重申“' - '用' - {01}'在正则表达式中,它会期望TNN可能是一个破折号,后跟0-n字符不是白色空格。您还可以用\ w *替换\ S *来获取所有字母和数字或。*以使所有字符与行尾/ n字符分开,TNN- \ S * [^ \ s {2}]也结束匹配两个空格。希望这有用。

答案 1 :(得分:1)

Regex101

(TTN-.*$)

Regular expression visualization

Debuggex Demo

解释

1st Capturing Group (TTN-.*$)
    TTN- matches the characters TTN- literally (case sensitive)
    .* matches any character (except for line terminators)
        * Quantifier — Matches between zero and unlimited times, as many times as possible, giving back as needed (greedy)
    $ asserts position at the end of a line
Global pattern flags
    g modifier: global. All matches (don't return after first match)
    m modifier: multi line. Causes ^ and $ to match the begin/end of each line (not only begin/end of string)