我正在使用splunk,但在尝试匹配前2位或3位数时遇到问题:
样品:
messageId = 9492947,to = 61410428007
我的csv看起来像这样:
to, Country
93, Afghanistan
355, Albania
213, Algeria
61, Australia
我正在尝试将字段推送到CSV并告诉我他们匹配的国家/地区。
我认为我需要做一个正则表达式或其他东西,但我有一些标记在splunk中的有趣字段是“to”
答案 0 :(得分:0)
这是一个混乱的,但它不需要正则表达式。假设您有一个带有标题的CSV文件 - 例如:
code,country
92,Afghanistan
355,Albania
214,Algeria
61,Australia
44,United Kingdom
1,United States
你需要这个头。我创建了一个示例文件,但只要您正确提取到to字段,源就可以来自任何地方。
source="/opt/testfiles/test-country-code.log"
| eval lOne=substr(to,1,1)
| eval lTwo=substr(to,1,2)
| eval lThree=substr(to,1,3)
| lookup countries.csv code as lOne OUTPUT country as cOne
| lookup countries.csv code as lTwo OUTPUT country as cTwo
| lookup countries.csv code as lThree OUTPUT country as cThree
| eval country=coalesce(cOne,cTwo,cThree)
| table to,country
substr调用从字符串的开头提取一个,两个或三个字符。查找使用查找表将每个变量转换为国家/地区名称。合并将采用具有值的第一个。