这是我的布景:
| makeresults
| eval _raw="[[\"A\",\"AA\"],[\"B\",\"BB\"],[\"C\",\"CC\"]]"
|spath path={}{} output=data
我希望A,B和C一起组成3个不同的元组,但我的要求与我合而为一。
我可以做类似的事情
|spath path={0}{} output=data0
|spath path={1}{} output=data1
|spath path={2}{} output=data2
但是我正在寻找更动态的东西:)
任何想法?
假设您的数据不包含任何其他JSON,则可以使用正则表达式提取每个条目并以这种方式进行处理。检查此示例。
| makeresults count=5
| eval random=random()
| eval _raw="[[\"A\",\"AA\"],[\"B\",\"BB\"],[\"C\",\"CC\"]]"
| rex max_match=0 field=_raw "(?<d>\[[^\[\]]+\])"
| mvexpand d
| streamstats count by random
| eval data_{count}=d
| fields _time, data_*, random
| stats values(_time) as _time, values(*) AS * by random
| fields - random
我为LOL添加了一些额外的复杂性。 streamstats
用于获取一个递增计数器,然后该计数器用于按data_0
,data_1
等顺序创建一些新的列名。...在开始时会生成一个随机数,该随机数将包含在事件中,因此您可以在最后加入所有拆分事件。