我定义了一个模式,当我在一个字符串上匹配它时,会显示错误:无匹配的关闭括号,但前提是我在支持Windows中添加了\。
Grok过滤器应匹配这样的字符串: 日志\ 01.01.2018 \ 1_00_06 \ server_console.log
let filestamp = pattern.date.parseSync(fileObject.filename);
filestamp.date = filestamp.date.split(".")[2] + "." +n(filestamp.date.split(".")[1]) + "." + filestamp.date.split(".")[0];
filestamp.time = filestamp.time.replace(/_/g, ":");
以及另一个文件中的过滤器
exports.date = patterns.createPattern('%{GREEDYDATA}\\%{DATE_EU:date}\\%{DATA:time}\\%{GREEDYDATA}');
fileObject.filename是一个类似于“ logs \ 01.01.2018 \ 1_00_06 \ server_console.log”的字符串
pattern.date.parseSync行仅显示“错误:右括号不匹配”,这告诉我grok模式中缺少右括号,但没有。.
答案 0 :(得分:0)
尝试这样的操作来避免反斜杠:
let filestamp = pattern.date.parseSync(fileObject.filename.split("\\").join("\\\\"));