csv字段的测试值-过滤器-Logstash
Testing value of csv field - Filter - Logstash
我需要设置一个 logstash conf 文件以将导入的 csv 文件导出到弹性搜索。
我的问题是我不知道如何评估 if 语句中的 csv 字段。
我有一个字段 "call_type",我想这样格式化:
if ["call_type"] == "([a-z][A-Z][ ])*[dD]ata([a-z][A-Z][ ])*"
mutate
{
replace => ["call_type", "data" ]
} } else if ["call_type"] =~ "([a-z][A-Z][ ])*[vV]oix([a-z][A-Z][ ])*"
{
mutate
{
replace => ["call_type", "voice" ]
}
}
else if ["call_type"] =~ "([a-z][A-Z][ ])*[sS]ms([a-z][A-Z][ ])*"
{
mutate
{
replace => ["call_type", "sms" ]
}
}
"call_type" 不知道此 if 语句语法 。
有人知道 if 语句语法 ?
您的代码段有几个拼写错误。如果使用正则表达式如下所示:
if ["call_type"] =~ "([a-z][A-Z][ ])*[sS]ms([a-z][A-Z][ ])*"
如果你这样做:
if ["call_type"] == "([a-z][A-Z][ ])*[dD]ata([a-z][A-Z][ ])*"
你比较的是字符串文字而不是正则表达式。
您缺少第一个 if 的起始引号。
如果你修复了这些,假设你的正则表达式是正确的,它应该可以工作...
感谢您的评论。
我发现了我的错误。它来自那里的双引号:["call_type"].
select if 语句中 csv 字段的值的良好语法是 [call_type]。
if [call_type] =~ "([a-z][A-Z][ ])*[dD]ata([a-z][A-Z][ ])*"
{
mutate
{
replace => ["call_type", "data" ]
}
}
else if [call_type] =~ "([a-z][A-Z][ ])*[vV]oix([a-z][A-Z][ ])*"
{
mutate
{
replace => ["call_type", "voice" ]
}
}
else if [call_type] =~ "([a-z][A-Z][ ])*[sS]ms([a-z][A-Z][ ])*"
{
mutate
{
replace => ["call_type", "sms" ]
}
}
我需要设置一个 logstash conf 文件以将导入的 csv 文件导出到弹性搜索。 我的问题是我不知道如何评估 if 语句中的 csv 字段。 我有一个字段 "call_type",我想这样格式化:
if ["call_type"] == "([a-z][A-Z][ ])*[dD]ata([a-z][A-Z][ ])*"
mutate
{
replace => ["call_type", "data" ]
} } else if ["call_type"] =~ "([a-z][A-Z][ ])*[vV]oix([a-z][A-Z][ ])*"
{
mutate
{
replace => ["call_type", "voice" ]
}
}
else if ["call_type"] =~ "([a-z][A-Z][ ])*[sS]ms([a-z][A-Z][ ])*"
{
mutate
{
replace => ["call_type", "sms" ]
}
}
"call_type" 不知道此 if 语句语法 。 有人知道 if 语句语法 ?
您的代码段有几个拼写错误。如果使用正则表达式如下所示:
if ["call_type"] =~ "([a-z][A-Z][ ])*[sS]ms([a-z][A-Z][ ])*"
如果你这样做:
if ["call_type"] == "([a-z][A-Z][ ])*[dD]ata([a-z][A-Z][ ])*"
你比较的是字符串文字而不是正则表达式。
您缺少第一个 if 的起始引号。 如果你修复了这些,假设你的正则表达式是正确的,它应该可以工作...
感谢您的评论。 我发现了我的错误。它来自那里的双引号:["call_type"].
select if 语句中 csv 字段的值的良好语法是 [call_type]。
if [call_type] =~ "([a-z][A-Z][ ])*[dD]ata([a-z][A-Z][ ])*"
{
mutate
{
replace => ["call_type", "data" ]
}
}
else if [call_type] =~ "([a-z][A-Z][ ])*[vV]oix([a-z][A-Z][ ])*"
{
mutate
{
replace => ["call_type", "voice" ]
}
}
else if [call_type] =~ "([a-z][A-Z][ ])*[sS]ms([a-z][A-Z][ ])*"
{
mutate
{
replace => ["call_type", "sms" ]
}
}