Splunk Search

Split pattern into multiple rows?

LearningGuy
Motivator

Split pattern in CSV lookup format into multiple rows
| lookup table.csv
Note that the number of SubnetID-IP pair is not always 4.   It could be from 1 to 4  or more (1...  N)
The example below is only one row, but the real data has multiple rows (eg. Comp-B to Comp-Z)

Before the split:       
Company        Location       SubnetID-IP
Comp-A           Loc- A           [{"subnet_id":"101","ip_address":"192.168.1.1"},{"subnet_id":"102","ip_address":"192.168.1.2"},{"subnet_id":"103","ip_address":"192.168.1.3"},{"subnet_id":"104","ip_address":"fd12:3456:789a:1::1"}]

After the split: 

Company        Location       IP                                subnetID
Comp-A            Loc-A            192.168.1.1                     101
Comp-A            Loc-A            192.168.1.2                     102
Comp-A            Loc-A            192.168.1.3                     103
Comp-A            Loc-A            fd12:3456:789a:1::1     104

Thank you so much for your help

Labels (3)
0 Karma
1 Solution

yuanliu
SplunkTrust
SplunkTrust

spath is your fiend.

 

| spath input=Subnet-IP path={}
| mvexpand {}
| spath input={}

 

Your sample data gives

CompanyLocationip_addresssubnet_id{}
Comp-ALoc-A192.168.1.1101{"subnet_id":"101","ip_address":"192.168.1.1"}
Comp-ALoc-A192.168.1.2102{"subnet_id":"102","ip_address":"192.168.1.2"}
Comp-ALoc-A192.168.1.3103{"subnet_id":"103","ip_address":"192.168.1.3"}
Comp-ALoc-Afd12:3456:789a:1::1104{"subnet_id":"104","ip_address":"fd12:3456:789a:1::1"}

This is an emulation that you can play with and compare to your real data

 

| makeresults
| eval Company = "Comp-A", Location = "Loc-A", Subnet-IP = "[{\"subnet_id\":\"101\",\"ip_address\":\"192.168.1.1\"},{\"subnet_id\":\"102\",\"ip_address\":\"192.168.1.2\"},{\"subnet_id\":\"103\",\"ip_address\":\"192.168.1.3\"},{\"subnet_id\":\"104\",\"ip_address\":\"fd12:3456:789a:1::1\"}]"

 

View solution in original post

Tags (2)

LearningGuy
Motivator

Your first suggestion worked. Thank you so much

| spath input=Subnet-IP path={}
| mvexpand {}
| spath input={}

 
I ran your second suggestion and received this "Error in 'makeresults' command: This command must be the first command of a search."
What is the purpose of the following commands?
Note that my search is using | inputlookup test.csv. It looks like makeresults didn't work with inputlookup. Thank you

| makeresults
| eval Company = "Comp-A", Location = "Loc-A", Subnet-IP = "[{\"subnet_id\":\"101\",\"ip_address\":\"192.168.1.1\"},{\"subnet_id\":\"102\",\"ip_address\":\"192.168.1.2\"},{\"subnet_id\":\"103\",\"ip_address\":\"192.168.1.3\"},{\"subnet_id\":\"104\",\"ip_address\":\"fd12:3456:789a:1::1\"}]"

 

0 Karma

yuanliu
SplunkTrust
SplunkTrust

The makeresults block is meant to emulate inputlookup as a way of comparison in case the solution gives unexpected output.

yuanliu
SplunkTrust
SplunkTrust

spath is your fiend.

 

| spath input=Subnet-IP path={}
| mvexpand {}
| spath input={}

 

Your sample data gives

CompanyLocationip_addresssubnet_id{}
Comp-ALoc-A192.168.1.1101{"subnet_id":"101","ip_address":"192.168.1.1"}
Comp-ALoc-A192.168.1.2102{"subnet_id":"102","ip_address":"192.168.1.2"}
Comp-ALoc-A192.168.1.3103{"subnet_id":"103","ip_address":"192.168.1.3"}
Comp-ALoc-Afd12:3456:789a:1::1104{"subnet_id":"104","ip_address":"fd12:3456:789a:1::1"}

This is an emulation that you can play with and compare to your real data

 

| makeresults
| eval Company = "Comp-A", Location = "Loc-A", Subnet-IP = "[{\"subnet_id\":\"101\",\"ip_address\":\"192.168.1.1\"},{\"subnet_id\":\"102\",\"ip_address\":\"192.168.1.2\"},{\"subnet_id\":\"103\",\"ip_address\":\"192.168.1.3\"},{\"subnet_id\":\"104\",\"ip_address\":\"fd12:3456:789a:1::1\"}]"

 

Tags (2)
Got questions? Get answers!

Join the Splunk Community Slack to learn, troubleshoot, and make connections with fellow Splunk practitioners in real time!

Meet up IRL or virtually!

Join Splunk User Groups to connect and learn in-person by region or remotely by topic or industry.

Get Updates on the Splunk Community!

Cisco Data Fabric from Architecture to Investigation, Better SOC Visibility, and More ...

Splunk Lantern is Splunk’s customer success center that provides practical guidance from Splunk experts on key ...

The Trust Gap: Why a Data Foundation is Fundamental to an Agentic Enterprise

The Trust Gap: Why a data foundation is fundamental to an  Agentic Enterprise.   Agentic AI is transforming ...

Data Management Digest – September 2026

    Welcome to the September 2026 edition of Data Management Digest! September brought a fresh wave of ...