如何为找到的每个订单编号运行splunk搜索

时间:2018-08-14 07:48:40

标签: search foreach splunk spl

我想先选择每个ORDERID,然后对当天找到的每个ORDERID进行搜索。

所以我需要一个foreach ORDID。我只找到了map命令,但它不能像我那样工作。

因为我的搜索应该像这样:

`index=* sourcetype=dat ORDID!="" |dedup ORDID| foreach ORDID| ...search

我必须分别为每个ORDID执行它。所以我需要能够通过$ ORDID $之类的东西来选择ORDID。

谢谢你们。

1 个答案:

答案 0 :(得分:0)

foreach命令在字段而不是值上循环。如果您有名为“ ORDID1”,“ ORDID2”,“ ORDID3”等的字段,那么foreach ORDID*将允许您处理它们而不列出所有内容。

您可能想要map,但您说那没用。想要详细说明吗?

您可能还想考虑使用子搜索来获取主搜索的ORDID值。在Splunk中,子搜索在其他命令之前执行。像这样:

<your current per-ORDID search> [ index=foo sourcetype=dat ORDID!="" |dedup ORDID | format ]

顺便说一句,避免使用index=*,因为在任何地方搜索都非常昂贵。