Splunk Search

MVZIP With the same field on the same Line

raby1996
Path Finder

Hello All,

I have a set of data that looks like the excerpt below:

[44] 2017-12-22 to 2017-12-29:
       2017-12-22 (Fri) to  2017-12-29 (Fri) : rotation1 : [email protected]
       2017-12-22 (Fri) and 2017-12-23 (Sat) : rotation2     : [email protected]
       2017-12-23 (Sat) and 2017-12-24 (Sun) : rotation3   : [email protected]
       2017-12-23 (Sat) and 2017-12-24 (Sun) : rotation4    : [email protected]
       2017-12-25 (Mon) to  2017-12-29 (Fri) : rotation5 : [email protected]
       2017-12-25 (Mon) to  2017-12-29 (Fri) : rotation6 : [email protected]
       2017-12-25 (Mon) to  2017-12-29 (Fri) : rotation7    : [email protected] [email protected]

And, I am able to extract each person on each rotation and create a list by table using the stats command which looks something like this:

Person                     Rotation                 Dates                      
[email protected]              rotation1              2017-12-22 (Fri) to 2017-12-29 (Fri)

This continues, and I get a table listing all the person's rotations for the year, however I run into an issue for rotation7 since there are usually 2 people on it, when I use mvzip for the rotation, dates and person It only picks up the first name, so it would look like rotation=(2017-12-25 (Mon) to 2017-12-29 (Fri) , rotation7, [email protected]), however what I need is for it to pick up the second name as well and zip it with the correct rotation as a separate entry.
In other words, it would be the previous rotation I.E
rotation=(2017-12-25 (Mon) to 2017-12-29 (Fri) , rotation7, [email protected]),
and another event as
rotation=(2017-12-25 (Mon) to 2017-12-29 (Fri) , rotation7, [email protected]).

I have max_match=0, and I am expanding the events however I have not been able to figure this out, are the any suggestions?

Thanks you!

0 Karma
1 Solution

woodcock
Esteemed Legend

This fakes the data:

|makeresults| eval _raw=" [44] 2017-12-22 to 2017-12-29:
    2017-12-22 (Fri) to  2017-12-29 (Fri) : rotation1 : [email protected]
    2017-12-22 (Fri) and 2017-12-23 (Sat) : rotation2     : [email protected]
    2017-12-23 (Sat) and 2017-12-24 (Sun) : rotation3   : [email protected]
    2017-12-23 (Sat) and 2017-12-24 (Sun) : rotation4    : [email protected]
    2017-12-25 (Mon) to  2017-12-29 (Fri) : rotation5 : [email protected]
    2017-12-25 (Mon) to  2017-12-29 (Fri) : rotation6 : [email protected]
    2017-12-25 (Mon) to  2017-12-29 (Fri) : rotation7    : [email protected] [email protected]"

This is the solution:

| rex max_match=0 "(?ms)(?:^|[\r\n])\s*(?<row>\d+[^\r\n]+)"
| mvexpand row
| rename row AS _raw | fields - _time
| rex "(?<dates>\d+\-\d+\-\d+\s+\(\w+\)\s+\w+\s+\d+\-\d+\-\d+\s+\(\w+\))\s+:\s+(?<rotation>rotation\d+)\s+:\s+(?<person>[^\r\n]+)(?<!\s)"
| makemv person
| mvexpand person

View solution in original post

woodcock
Esteemed Legend

This fakes the data:

|makeresults| eval _raw=" [44] 2017-12-22 to 2017-12-29:
    2017-12-22 (Fri) to  2017-12-29 (Fri) : rotation1 : [email protected]
    2017-12-22 (Fri) and 2017-12-23 (Sat) : rotation2     : [email protected]
    2017-12-23 (Sat) and 2017-12-24 (Sun) : rotation3   : [email protected]
    2017-12-23 (Sat) and 2017-12-24 (Sun) : rotation4    : [email protected]
    2017-12-25 (Mon) to  2017-12-29 (Fri) : rotation5 : [email protected]
    2017-12-25 (Mon) to  2017-12-29 (Fri) : rotation6 : [email protected]
    2017-12-25 (Mon) to  2017-12-29 (Fri) : rotation7    : [email protected] [email protected]"

This is the solution:

| rex max_match=0 "(?ms)(?:^|[\r\n])\s*(?<row>\d+[^\r\n]+)"
| mvexpand row
| rename row AS _raw | fields - _time
| rex "(?<dates>\d+\-\d+\-\d+\s+\(\w+\)\s+\w+\s+\d+\-\d+\-\d+\s+\(\w+\))\s+:\s+(?<rotation>rotation\d+)\s+:\s+(?<person>[^\r\n]+)(?<!\s)"
| makemv person
| mvexpand person

sduff_splunk
Splunk Employee
Splunk Employee

Can you provide the full search you are using to convert the data into the table?
I expect we will be able to extend the regex you are using to include all the email addresses, do an makemv and then mvzip to get the output you require

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!

Deep Dive: Accelerate threat investigation with Splunk’s AI Assistant in Security

AI is one of the biggest topics in the market today, and for security teams, its value goes far beyond the ...

Announcing Modern Navigation: A New Era of Splunk User Experience

We are excited to introduce the Modern Navigation feature in the Splunk Platform, available to both cloud and ...

Detection Engineering Office Hours: Real-World Troubleshooting & Q&A

[REGISTER HERE] This thread is for the Community Office Hours session on Detection Engineering Office Hours: ...