Splunk Search

Convert multi-value expression to field names and values

rharrisssi
Path Finder

I have a string,

"one:isone,two:istwo,three:isthree"

The goal is to convert these to fields and values, without knowing what will be in the string. Basically the following, but automagic.

| eval one="isone"
| eval two="istwo"
...
0 Karma

micahkemp
Champion

Splunk enables this type of behavior with the _KEY_1 and _VAL_1 syntax:

in transforms.conf:

[colon_comma_separated]
REGEX = (?<_KEY_1>[^:]+):(?<_VAL_1>[^,]+)

in props.conf:

[<sourcetype>]
REPORT-colon_comma_separated

From the transforms.conf doc:

  * If the REGEX extracts both the field name and its corresponding field
    value, you can use the following special capturing groups if you want to
    skip specifying the mapping in FORMAT:
      _KEY_<string>, _VAL_<string>.
  * For example, the following are equivalent:
    * Using FORMAT:
      * REGEX  = ([a-z]+)=([a-z]+)
      * FORMAT = $1::$2
    * Without using FORMAT
      * REGEX  = (?<_KEY_1>[a-z]+)=(?<_VAL_1>[a-z]+)
    * When using either of the above formats, in a search-time extraction,
      the regex will continue to match against the source text, extracting
      as many fields as can be identified in the source text.
0 Karma
Get Updates on the Splunk Community!

Welcome to the Splunk Community!

(view in My Videos) We're so glad you're here! The Splunk Community is place to connect, learn, give back, and ...

Tech Talk | Elevating Digital Service Excellence: The Synergy of Splunk RUM & APM

Elevating Digital Service Excellence: The Synergy of Real User Monitoring and Application Performance ...

Adoption of RUM and APM at Splunk

    Unleash the power of Splunk Observability   Watch Now In this can't miss Tech Talk! The Splunk Growth ...