Splunk Search

splunk eval case statement compare the case-sensitive value or case-insensitive

Chandras11
Communicator

Hi Everyone,

I have a very small conceptual doubt. Does the eval case do case insensitive compare or will it compare the exact values (Case sensitive only)? I need a case-insensitive comparison here.

LINE_CODE value examples:- AMx05323, amy4bl124, bmz4265678 etc. If the first Character is a or A (case insensitive "a", it should return Atlanta otherwise it should return Other.

Do the following 2 statements will provide the same results or different.

| eval REGION_ID = (substr(LINE_CODE,1,1)="a") OR (substr(LINE_CODE,1,1)="A")) ,"Atlanta", 1=1,"Other") 

and

| eval REGION_ID = substr(LINE_CODE,1,1)="a"  ,"Atlanta" , 1=1," Other") 

Thanks for your time.

0 Karma
1 Solution

FrankVl
Ultra Champion

That's easy enough to test:

| makeresults
| eval LINE_CODE="Abcd"
| append [
| makeresults
| eval LINE_CODE="abcd"
]
| eval REGION_ID = case(substr(LINE_CODE,1,1)="a","Atlanta", 1=1," Other")

Which results in:

LINE_CODE   REGION_ID
Abcd    Other
abcd    Atlanta

Conclusion: it is case sensitive. To make it insensitive, simply cast to lowercase before testing:

| eval REGION_ID = case(lower(substr(LINE_CODE,1,1))="a","Atlanta", 1=1," Other")

View solution in original post

woodcock
Esteemed Legend

By default, the lookups are case-insensitive but if you create a Lookup definition mapped to your Lookup file then you can specify MANY things, including case-sensitive vs. case-insensitive and also WILDCARD and CIDR based fields.

0 Karma

FrankVl
Ultra Champion

That's easy enough to test:

| makeresults
| eval LINE_CODE="Abcd"
| append [
| makeresults
| eval LINE_CODE="abcd"
]
| eval REGION_ID = case(substr(LINE_CODE,1,1)="a","Atlanta", 1=1," Other")

Which results in:

LINE_CODE   REGION_ID
Abcd    Other
abcd    Atlanta

Conclusion: it is case sensitive. To make it insensitive, simply cast to lowercase before testing:

| eval REGION_ID = case(lower(substr(LINE_CODE,1,1))="a","Atlanta", 1=1," Other")

Chandras11
Communicator

Perfect, thanks for the explanation. is there any way to remove if there is a blank space in from of LINE_CODE for example:- LINE_CODE = " Abrd"

0 Karma

Chandras11
Communicator

Thanks a lot.. It looks like the excel TRIM function. 🙂 I can go ahead easily now

0 Karma

FrankVl
Ultra Champion
0 Karma
Get Updates on the Splunk Community!

What’s new on Splunk Lantern in August

This month’s Splunk Lantern update gives you the low-down on all of the articles we’ve published over the past ...

Welcome to the Future of Data Search & Exploration

You have more data coming at you than ever before. Over the next five years, the total amount of digital data ...

This Week's Community Digest - Splunk Community Happenings [8.3.22]

Get the latest news and updates from the Splunk Community here! News From Splunk Answers ✍️ Splunk Answers is ...