在 splunk 中嵌套 if 循环

nested if loop in splunk

我想在 splunk 中编写一个嵌套的 if 循环: 我想达到的目标

if buyer_from_France: 
   do eval percentage_fruits
   if percentage_fruits> 10:
        do summation
        if summation>20:
                   total_price
                   if total_price>:
                              do(trigger bonus coupon)

我当前的代码(有效):

> | eventstats sum(buyers_fruits) AS total_buyers_fruits by location
> | stats sum(fruits) as buyers_fruits by location buyers 
> | eval percentage_fruits=fruits_bought/fruits_sold 
> | table fruits_bought fruits_sold buyers
> | where percentage_fruits > 10
> | sort - percentage_fruits

如何完成第 2 个(求和)、第 3 个(总价)、第 4 个 if 循环(触发)的 syntax/expression?

SPL 不做“循环”。一个接近[足够]的模拟是 SPL 中的每一行与 bash 中的单个命令 相似 (因此命令之间的管道分隔符)。 IOW,SPL 在处理中是纯线性的。像这样使用多条件 eval..if

index=ndx sourcetype=srctp 
| eval myfield=if(match(fieldA,"someval") AND !match(fieldC,"notthis"),"all true","else val")

或者像这样:

| eval myfield=if(match(fieldA,"someval"),if(match(fieldB,"otherval"),"matched A&B",if(!match(fieldC,"notthis"),"not A & not C","else val")))

如果你能更好地解释你的使用case/end目标,我们可能会提供更好的指导