<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How can I  add list of field values into an array in Splunk Search</title>
    <link>https://community.splunk.com/t5/Splunk-Search/How-can-I-add-list-of-field-values-into-an-array/m-p/690395#M235141</link>
    <description>&lt;P&gt;Based on your Slack response, I think this is what you will want&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;...your search ...
| rex field=host_list max_match=0 "(?&amp;lt;prefix&amp;gt;[^0-9]*)(?&amp;lt;id&amp;gt;\d+)"
| eval prefix=mvdedup(prefix)
| foreach id mode=multivalue [ eval n=&amp;lt;&amp;lt;ITEM&amp;gt;&amp;gt;, diff=n-prev, ss=case(isnull(ss), n, diff&amp;gt;1, mvappend(ss, n), true(), ss), ee=case(isnull(ss), null(), diff&amp;gt;1, if(r=mvindex(ss,-2), mvappend(ee, " "), mvappend(ee, r)), true(), ee), r=n, prev=n ]
| eval ee=if(r=mvindex(ss,-1), mvappend(ee, " "), mvappend(ee, r))
| eval ranges=prefix."[".mvjoin(rtrim(mvzip(ss, ee, "-"), "- "), ",")."]"
| fields - diff id n prev r ss ee&lt;/LI-CODE&gt;</description>
    <pubDate>Tue, 11 Jun 2024 23:53:05 GMT</pubDate>
    <dc:creator>bowesmana</dc:creator>
    <dc:date>2024-06-11T23:53:05Z</dc:date>
    <item>
      <title>How can I  add list of field values into an array</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-can-I-add-list-of-field-values-into-an-array/m-p/690286#M235115</link>
      <description>&lt;P&gt;&lt;SPAN&gt;I have a search that outputs the hostlist by test.&lt;BR /&gt;&lt;BR /&gt;index=abc&amp;nbsp;| stats count by host test | stats count as total_count values(host) as host_list by test which gives me list of hosts by test like below&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;TABLE width="427"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="64"&gt;test&lt;/TD&gt;&lt;TD width="363"&gt;host_list&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;new&lt;/TD&gt;&lt;TD width="363"&gt;abc0002&lt;BR /&gt;abc0003&lt;BR /&gt;abc0004&lt;BR /&gt;abc0005&lt;BR /&gt;abc0006&lt;BR /&gt;abc0007&lt;BR /&gt;abc0008&lt;BR /&gt;abc0009&lt;BR /&gt;abc0010&lt;BR /&gt;abc0011&lt;BR /&gt;abc0012&lt;BR /&gt;abc0013&lt;BR /&gt;abc0014&lt;BR /&gt;abc0015&lt;BR /&gt;abc0016&lt;BR /&gt;abc0017&lt;BR /&gt;abc0018&lt;BR /&gt;abc0019&lt;BR /&gt;abc0020&lt;BR /&gt;abc0022&lt;BR /&gt;abc0024&lt;BR /&gt;abc0025&lt;BR /&gt;abc0026&lt;BR /&gt;abc0027&lt;BR /&gt;abc0028&lt;BR /&gt;abc0029&lt;BR /&gt;abc0031&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I&lt;SPAN&gt;I would like to group the range of host like [abc0002-abc0020] [abc0022] [abc0024-abc0029] [abc0031] instead of the whole list&amp;nbsp; by test like below image&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;TABLE width="811"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="64"&gt;test&lt;/TD&gt;&lt;TD width="363"&gt;host_list&lt;/TD&gt;&lt;TD width="128"&gt;host_array&amp;nbsp;&lt;/TD&gt;&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;new&lt;/TD&gt;&lt;TD width="363"&gt;abc0002&lt;BR /&gt;abc0003&lt;BR /&gt;abc0004&lt;BR /&gt;abc0005&lt;BR /&gt;abc0006&lt;BR /&gt;abc0007&lt;BR /&gt;abc0008&lt;BR /&gt;abc0009&lt;BR /&gt;abc0010&lt;BR /&gt;abc0011&lt;BR /&gt;abc0012&lt;BR /&gt;abc0013&lt;BR /&gt;abc0014&lt;BR /&gt;abc0015&lt;BR /&gt;abc0016&lt;BR /&gt;abc0017&lt;BR /&gt;abc0018&lt;BR /&gt;abc0019&lt;BR /&gt;abc0020&lt;BR /&gt;abc0022&lt;BR /&gt;abc0024&lt;BR /&gt;abc0025&lt;BR /&gt;abc0026&lt;BR /&gt;abc0027&lt;BR /&gt;abc0028&lt;BR /&gt;abc0029&lt;BR /&gt;abc0031&lt;/TD&gt;&lt;TD&gt;[abc0002-abc0020] [abc0022] [abc0024-abc0029] [abc0031]&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thank you in Advance Splunkers&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 11 Jun 2024 00:25:22 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-can-I-add-list-of-field-values-into-an-array/m-p/690286#M235115</guid>
      <dc:creator>power12</dc:creator>
      <dc:date>2024-06-11T00:25:22Z</dc:date>
    </item>
    <item>
      <title>Re: How can I  add list of field values into an array</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-can-I-add-list-of-field-values-into-an-array/m-p/690289#M235118</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.splunk.com/t5/user/viewprofilepage/user-id/239523"&gt;@power12&lt;/a&gt;&amp;nbsp;try something like this (assuming the host names all follow the same format)&lt;BR /&gt;&lt;BR /&gt;index=abc&lt;BR /&gt;| rex field=host "(?&amp;lt;hostname&amp;gt;\w+)(?&amp;lt;hostnum&amp;gt;\d+)"&lt;BR /&gt;| eval hostnum=tonumber(hostnum)&lt;BR /&gt;| eval hostgroup=case(hostnum&amp;gt;=2 AND hostnum&amp;lt;=20, "group1", hostnum=22, "group2", hostnum&amp;gt;=24 AND hostnum&amp;lt;=29, "group3", hostnum=31, "group4")&lt;BR /&gt;| stats count by host test hostgroup&lt;BR /&gt;| stats count as total_count values(host) as host_list by test, hostgroup&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 11 Jun 2024 00:56:54 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-can-I-add-list-of-field-values-into-an-array/m-p/690289#M235118</guid>
      <dc:creator>KendallW</dc:creator>
      <dc:date>2024-06-11T00:56:54Z</dc:date>
    </item>
    <item>
      <title>Re: How can I  add list of field values into an array</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-can-I-add-list-of-field-values-into-an-array/m-p/690290#M235119</link>
      <description>&lt;P&gt;I see you asked this in Slack, but you can use foreach on your final data example, there could be a better way to work it out in the foreach. Not sure what you want to do about the host name prefix, but if it's fixed you can add it back&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;| makeresults format=csv data="host_list
abc0002
abc0003
abc0004
abc0005
abc0006
abc0007
abc0008
abc0009
abc0010
abc0011
abc0012
abc0013
abc0014
abc0015
abc0016
abc0017
abc0018
abc0019
abc0020
abc0022
abc0024
abc0025
abc0026
abc0027
abc0028
abc0029
abc0031"
| eval test="new"
| stats values(host_list) as host_list by test

``` Above is creating your example data ```

``` Get the numeric part ```
| rex field=host_list max_match=0 "(?&amp;lt;prefix&amp;gt;[^0-9]*)(?&amp;lt;id&amp;gt;\d+)"
| eval c=0
| foreach id mode=multivalue [ eval n=&amp;lt;&amp;lt;ITEM&amp;gt;&amp;gt;, diff=n-prev, ss=case(isnull(ss), mvindex(prefix, c).&amp;lt;&amp;lt;ITEM&amp;gt;&amp;gt;, diff&amp;gt;1, mvappend(ss, mvindex(prefix, c).&amp;lt;&amp;lt;ITEM&amp;gt;&amp;gt;), true(), ss), ee=case(isnull(ss), null(), diff&amp;gt;1, mvappend(ee, r), true(), ee), r=mvindex(prefix, c).&amp;lt;&amp;lt;ITEM&amp;gt;&amp;gt;, prev=n, c=c+1 ]
| eval ee=mvappend(ee, r)
| eval ranges=mvzip(ss, ee, "-")
| fields - diff id n prev r ss ee c&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 11 Jun 2024 01:50:25 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-can-I-add-list-of-field-values-into-an-array/m-p/690290#M235119</guid>
      <dc:creator>bowesmana</dc:creator>
      <dc:date>2024-06-11T01:50:25Z</dc:date>
    </item>
    <item>
      <title>Re: How can I  add list of field values into an array</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-can-I-add-list-of-field-values-into-an-array/m-p/690395#M235141</link>
      <description>&lt;P&gt;Based on your Slack response, I think this is what you will want&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;...your search ...
| rex field=host_list max_match=0 "(?&amp;lt;prefix&amp;gt;[^0-9]*)(?&amp;lt;id&amp;gt;\d+)"
| eval prefix=mvdedup(prefix)
| foreach id mode=multivalue [ eval n=&amp;lt;&amp;lt;ITEM&amp;gt;&amp;gt;, diff=n-prev, ss=case(isnull(ss), n, diff&amp;gt;1, mvappend(ss, n), true(), ss), ee=case(isnull(ss), null(), diff&amp;gt;1, if(r=mvindex(ss,-2), mvappend(ee, " "), mvappend(ee, r)), true(), ee), r=n, prev=n ]
| eval ee=if(r=mvindex(ss,-1), mvappend(ee, " "), mvappend(ee, r))
| eval ranges=prefix."[".mvjoin(rtrim(mvzip(ss, ee, "-"), "- "), ",")."]"
| fields - diff id n prev r ss ee&lt;/LI-CODE&gt;</description>
      <pubDate>Tue, 11 Jun 2024 23:53:05 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-can-I-add-list-of-field-values-into-an-array/m-p/690395#M235141</guid>
      <dc:creator>bowesmana</dc:creator>
      <dc:date>2024-06-11T23:53:05Z</dc:date>
    </item>
  </channel>
</rss>

