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!

Introducing the Splunk Community Dashboard Challenge!

Welcome to Splunk Community Dashboard Challenge! This is your chance to showcase your skills in creating ...

Get the T-shirt to Prove You Survived Splunk University Bootcamp

As if Splunk University, in Las Vegas, in-person, with three days of bootcamps and labs weren’t enough, now ...

Wondering How to Build Resiliency in the Cloud?

IT leaders are choosing Splunk Cloud as an ideal cloud transformation platform to drive business resilience,  ...