Splunk csv匹配国家/地区代码

时间:2015-03-18 11:27:02

标签: match prefix phone-number splunk

我正在使用splunk,但在尝试匹配前2位或3位数时遇到问题:

样品:
messageId = 9492947,to = 61410428007

我的csv看起来像这样:

to, Country   
93, Afghanistan  
355, Albania  
213, Algeria  
61, Australia  

我正在尝试将字段推送到CSV并告诉我他们匹配的国家/地区。

我认为我需要做一个正则表达式或其他东西,但我有一些标记在splunk中的有趣字段是“to”

1 个答案:

答案 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调用从字符串的开头提取一个,两个或三个字符。查找使用查找表将每个变量转换为国家/地区名称。合并将采用具有值的第一个。