Splunk Search

tostring turning integers into decimals

rachelneal
Path Finder

I have a rex that returns a series of 5-8 digit IDs:

SEARCH
"rex field=_raw "2012-\d\d-\d\d,\d,(?\d{1,8})""

RESULT (HotelID)

10645909
10645911
10645912
1065511
1065512

I need to trim the last 2 digits off of each of them so I used an expression that had worked before:
| eval Hotel=tostring(HotelID) | eval Hotel=rtrim(Hotel,substr(Hotel,-2))

and it's produces:

1.81733e+07
3.01515e+07
2.55715e+07
2.8893e+06
2.83481e+07
7.98262e+06
2.98611e+06
3.46589e+07

I've tried it with and without the tostring and get the same results. What is it converting to and how to I get it to stop? 🙂

Tags (3)
1 Solution

rachelneal
Path Finder

Well I'm not sure why it's doing it but I was given a simple regex that fixed it from the start.

(?\d+)\d{2} DOH!!!!

View solution in original post

rachelneal
Path Finder

Well I'm not sure why it's doing it but I was given a simple regex that fixed it from the start.

(?\d+)\d{2} DOH!!!!

gkanapathy
Splunk Employee
Splunk Employee

appears to be a bug in the rtrim() (also trim()) function. Workaround is to use tostring() on the first argument:

| eval Hotel=tostring(HotelID) | eval Hotel=rtrim(tostring(Hotel),substr(Hotel,-2))
0 Karma

gkanapathy
Splunk Employee
Splunk Employee

or:

... | eval Hotel=substr(Hotel,0,len(Hotel)-2)
Get Updates on the Splunk Community!

Introducing the 2024 SplunkTrust!

Hello, Splunk Community! We are beyond thrilled to announce our newest group of SplunkTrust members!  The ...

Introducing the 2024 Splunk MVPs!

We are excited to announce the 2024 cohort of the Splunk MVP program. Splunk MVPs are passionate members of ...

Splunk Custom Visualizations App End of Life

The Splunk Custom Visualizations apps End of Life for SimpleXML will reach end of support on Dec 21, 2024, ...