如何在字段内容的开头添加一个字符?
How can i add a character at the beginning of a field content?
我正在尝试在 logstash 中字段内容的开头添加一个字符。我在网上只找到了如何使用 gsub 插件在最后添加它,如下所示:
dissect {
mapping => {"message" => "%{message}<%{payload}"}
}
mutate {
gsub => ["payload", "$", "<"]
}
但是如果我想在开头添加“<”,我该怎么做呢?
您问题中的过滤器使用正则表达式来查找 <
的放置位置。使用 $
,它匹配字符串的结尾
mutate {
gsub => ["payload", "$", "<"]
}
查找字符串开头的正则表达式是 ^
。所以你必须像这样修改你的过滤器:
mutate {
gsub => ["payload", "^", "<"]
}
如果您只想添加不存在的 <
:
mutate {
gsub => ["payload", "^", "^(?!<)"]
}
此处正则表达式的 (?!<)
部分检查 <
是否不存在 (negative lookahead);如果已经存在,则正则表达式将不匹配并且不会添加 <
。
我正在尝试在 logstash 中字段内容的开头添加一个字符。我在网上只找到了如何使用 gsub 插件在最后添加它,如下所示:
dissect {
mapping => {"message" => "%{message}<%{payload}"}
}
mutate {
gsub => ["payload", "$", "<"]
}
但是如果我想在开头添加“<”,我该怎么做呢?
您问题中的过滤器使用正则表达式来查找 <
的放置位置。使用 $
,它匹配字符串的结尾
mutate {
gsub => ["payload", "$", "<"]
}
查找字符串开头的正则表达式是 ^
。所以你必须像这样修改你的过滤器:
mutate {
gsub => ["payload", "^", "<"]
}
如果您只想添加不存在的 <
:
mutate {
gsub => ["payload", "^", "^(?!<)"]
}
此处正则表达式的 (?!<)
部分检查 <
是否不存在 (negative lookahead);如果已经存在,则正则表达式将不匹配并且不会添加 <
。