Splunk Search

How to convert this string to a numeric value?

New Member

I've created a new field, however, it's appearing as a string instead of a value. I've used the regular expression to extract from the following data:

(?=[^T]*(?:Transfer complete.|T.*Transfer complete.))^[^\.\n]*\.\s+(?P\d+,\d+)

Transfer complete. 1,011 bytes transferred

Therefore building a result of 1,011, however, this is considered a string rather than a numeric value. How can I convert this to treat the result as a numeric value?

0 Karma
1 Solution

Legend

Like this

| gentimes start=-1 | eval x="Transfer complete. 1,011 bytes transferred" | rex field=x "complete\.\s?(?<b>[^\s]+)" | table b | convert num(b) as bn

View solution in original post

Legend

Like this

| gentimes start=-1 | eval x="Transfer complete. 1,011 bytes transferred" | rex field=x "complete\.\s?(?<b>[^\s]+)" | table b | convert num(b) as bn

View solution in original post

New Member

Apoliges, im a newbie at this and entered the above into the regular expression
it's providing null as a result, the value of bytes transferred will range from line to line

Original Source Line

[21] Thu 14Jul16 14:17:15 - (014058) 226 Transfer complete. 1,011 bytes transferred. 30.85 KB/sec.

Result was null

0 Karma

Revered Legend

You can use your original regex and add the convert command as specified in the answer.

0 Karma

Legend

As long as the bytes is has complete. before it, this regex will capture all combinations. So you search will look like this

... | rex field=x "complete\.\s?(?<bytes>[^\s]+)\sbytes" | convert num(bytes) as bytes
0 Karma
State of Splunk Careers

Access the Splunk Careers Report to see real data that shows how Splunk mastery increases your value and job satisfaction.

Find out what your skills are worth!