Splunk Search

How to count specific data separated by pipe character ?

New Member


I have below data and would like to get count by country code. Is it possible to get it ?

|21/02/2021 12:36:29.048| |INFO| |1234|guest |CA|1.10.1| [END] - DetailsLookUp

|21/02/2021 12:26:20.534| |INFO| |8669|guest |US|1.10.1| [END] - DetailsLookUp

Thanks in advance.

Labels (1)
Tags (3)
0 Karma

New Member

@AhmadKhattak20 @inventsekar @inventsekar 

Thanks for giving me the ideas how to work this out.

There is no field specify for the country code so I use Field Extractor and now I'm able to get the count 😊

But since I use source as Data Type I'm not able to change the Permission. From what I read it seems like there is issue when using source instead of sourcetype.

0 Karma

Super Champion

Hi @Linnie25 

If the fields are not extracted, then, you have to use rex to find out the country and then count. 

| makeresults 
| eval log="|test|13e|1234|guest |CA|1.2|test|test" 
| rex field=log "\|(?<country>\w\w)\|\d" 
| stats count by country


0 Karma



As implied, you need to extract the country code value into a field. At search time, you can use the rex command with an appropriate regular expression:

| rex "\\|[^|]*\\|[^|]*\\|[^|]*\\|[^|]*\\|[^|]*\\|[^|]*\\|(?<country_code>[^|]*)"
| stats count by country_code

0 Karma


What are the fields that have been extracted for this data?

Is there any field extracted that has the country code value, if so then you can easily get the count by country code.

As an example,

If the field containing the country code is called "code", you could get the count by country code using the below SPL query, 

index=main | stats count by code

Replace the index value with the actual index in which the data is being stored. 

0 Karma
Register for .conf21 Now! Go Vegas or Go Virtual!

How will you .conf21? You decide! Go in-person in Las Vegas, 10/18-10/21, or go online with .conf21 Virtual, 10/19-10/20.