我想先选择每个ORDERID,然后对当天找到的每个ORDERID进行搜索。
所以我需要一个foreach ORDID。我只找到了map命令,但它不能像我那样工作。
因为我的搜索应该像这样:
`index=* sourcetype=dat ORDID!="" |dedup ORDID| foreach ORDID| ...search
我必须分别为每个ORDID执行它。所以我需要能够通过$ ORDID $之类的东西来选择ORDID。
谢谢你们。
答案 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=*
,因为在任何地方搜索都非常昂贵。