Splunk Search

Regex for fields that may or not be filled?

mrgibbon
Contributor

Hey Guys, tricky one I came across.
I have to find and match on fields that may not be present.
So far I have this to find the fields when they exist:

"Source computer: (?P[^,]+) ,Source IP: (?P[^,]+)"

But it fails when the field is not filled and just looks like this:
"Source computer: " or "Source IP: ".
In fact the whole thing can look like this:
"Source computer: ,Source IP: ,"

How can I overcome this and maybe insert a "null" or "missing" string if the field is empty?
Ive tried with no success:
| fillnull value="missing" sourcecomputer
| fillnull value=NULL sourcecomputer

Anyone? Thanks in advance.

Tags (1)

mrgibbon
Contributor

Answered my own question, using * and not + at the end of the search.

Rob
Splunk Employee
Splunk Employee

You may want to try using an eval statement such as;

|eval sourcecomputer=if(sourcecomputer=="", "missing", sourcecomputer)

This will rewrite your field that has an empty value (not exactly NULL) and replace it with missing and otherwise replace it with whatever is already in the sourcecomputer field.

That will work for one value at a time, otherwise, you may want to use the sed mode to replace empty values in your raw string.

|rex field=_raw mode=sed "s/:\s,/:\smissing,/g"
Career Survey
First 500 qualified respondents will receive a $20 gift card! Tell us about your professional Splunk journey.

Can’t make it to .conf25? Join us online!

Get Updates on the Splunk Community!

Community Content Calendar, September edition

Welcome to another insightful post from our Community Content Calendar! We're thrilled to continue bringing ...

Splunkbase Unveils New App Listing Management Public Preview

Splunkbase Unveils New App Listing Management Public PreviewWe're thrilled to announce the public preview of ...

Leveraging Automated Threat Analysis Across the Splunk Ecosystem

Are you leveraging automation to its fullest potential in your threat detection strategy?Our upcoming Security ...