Splunk Search

Regex a value

timyong80
Explorer

Hello,

I have multiple values for a field in my search results and they look like the ones below. Can you show me the condition to regex the second value so that it becomes "aks-nodes-15133334-vmss" without the trailing numbers after vmss? At the same time, I would like to maintain value 1 as it is since it doesn't have "vmss" in the trailing name. So, if the value contains vmss, remove the trailing numbers but if there's no vmss in the value, let the value remains at it is.

Before

1) aks-agentpool-60893500-2
2) aks-nodes-15133334-vmss000002

After

1) aks-agentpool-60893500-2
2) aks-nodes-15133334-vmss

If I do this (?<host>.+\D), it will make item 2 looks like aks-nodes-15133334-vmss but it makes item 1 looks like aks-agentpool-60893500-

Thank you for your help.

Labels (1)
0 Karma

renjith_nair
Legend

Try

(?<host>.*(vms)?\D)
---
What goes around comes around. If it helps, hit it with Karma 🙂
0 Karma

timyong80
Explorer

Thanks. It works for no.2 but for no.1, it regex the value as "aks-agentpool-60893500-" (without the 2).

0 Karma

renjith_nair
Legend

Apologies, for some reason it was working fine in regex101

https://regex101.com/r/Wlrjiv/1

Try another version - tested in Splunk

| makeresults |eval hosts="aks-agentpool-60893500-2 aks-nodes-15133334-vmss000002"|makemv hosts|mvexpand hosts
|rex field=hosts "(?<host>.*(?=vmss)\D+|.+)"

 

---
What goes around comes around. If it helps, hit it with Karma 🙂
0 Karma
Get Updates on the Splunk Community!

Splunk MCP & Agentic AI: Machine Data Without Limits

  Discover how the Splunk Model Context Protocol (MCP) Server can revolutionize the way your organization ...

Finding Based Detections General Availability

Overview  We’ve come a long way, folks, but here in Enterprise Security 8.4 I’m happy to announce Finding ...

Get Your Hands Dirty (and Your Shoes Comfy): The Splunk Experience

Hands-On Learning and Technical Seminars  Sometimes, you just need to see the code. For those looking for a ...