Hi Splunkers,
I have data like this,
Primary Key_1:
subkey_1 : subvalue_1
subkey_2 : subvalue_2
Primary Key_2:
subkey_1 : subvalue_1
subkey_2 : subvalue_2
I extract data like this, But I want to see in splunk like key1.subkey_1 = sub_value_1
Btw, this is one event.
I try in transforms.conf ($1::$2:):$3 , But I failed.
And I want to extract this data, What is the best way extract this for as I want. Or is that possible ?
If the data is highly formatted as illustrated and assuming primary key names and values do not contain space, I'd turn the string into conformant data using the following, then you can use spath to extract.
| rex mode=sed max_match=0 "s/([^:\s]+)\s*:/\"\1\":/g"
| rex mode=sed max_match=0 "s/: +(\S+)/:\"\1\"/g"
| rex mode=sed "s/^\"/{\"/g"
| rex mode=sed max_match=0 "s/(\s+)\"/\1{\"/g"
| rex mode=sed max_match=0 "s/\"\s\s+{/\", /g"
| rex mode=sed "s/\"\s+{/\"},
/"
| rex mode=sed "s/\"$/\"}
}/"
| spath
PrimaryKey_1.subkey_1 | PrimaryKey_1.subkey_2 | PrimaryKey_2.subkey_1 | PrimaryKey_2.subkey_2 |
subvalue_1 | subvalue_2 | subvalue_1 | subvalue_2 |
In case you have this question in mind: This cannot be implemented in transforms.conf.
If the data is highly formatted as illustrated and assuming primary key names and values do not contain space, I'd turn the string into conformant data using the following, then you can use spath to extract.
| rex mode=sed max_match=0 "s/([^:\s]+)\s*:/\"\1\":/g"
| rex mode=sed max_match=0 "s/: +(\S+)/:\"\1\"/g"
| rex mode=sed "s/^\"/{\"/g"
| rex mode=sed max_match=0 "s/(\s+)\"/\1{\"/g"
| rex mode=sed max_match=0 "s/\"\s\s+{/\", /g"
| rex mode=sed "s/\"\s+{/\"},
/"
| rex mode=sed "s/\"$/\"}
}/"
| spath
PrimaryKey_1.subkey_1 | PrimaryKey_1.subkey_2 | PrimaryKey_2.subkey_1 | PrimaryKey_2.subkey_2 |
subvalue_1 | subvalue_2 | subvalue_1 | subvalue_2 |
In case you have this question in mind: This cannot be implemented in transforms.conf.
Some of pieces of data different but I'll try to change. The answer is correct.
Presumably this is a multi line event?
Are there finite limits to how many primary keys will be in the data? Like are there always 2 primary keys? Or could there be more/less depending on the event that comes in?