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"
Get Updates on the Splunk Community!

Upcoming Webinar: Unmasking Insider Threats with Slunk Enterprise Security’s UEBA

Join us on Wed, Dec 10. at 10AM PST / 1PM EST for a live webinar and demo with Splunk experts! Discover how ...

.conf25 technical session recap of Observability for Gen AI: Monitoring LLM ...

If you’re unfamiliar, .conf is Splunk’s premier event where the Splunk community, customers, partners, and ...

A Season of Skills: New Splunk Courses to Light Up Your Learning Journey

There’s something special about this time of year—maybe it’s the glow of the holidays, maybe it’s the ...