在Splunk中有些情况下有些字段可能时一长串字符串,但这些字符串中包含了一些我们想要替换为实际值的变量名,否则你直接在字符串中使用变量名,它会把变量名当作字符串来处理。
以下面的测试为例:
| makeresults
| eval name="Bob",age="13"
```student_info字段中包含了$student.name$和$student.age$,两个要替换实际值的字段,并且它们都含有一定的提取特征,这里的例子就是以$student开头,在不同的case中你可以根据自己的业务数据找出可以用来表明特征的提取方式```
| eval student_info="The student name is $student.name$ and age is $student.age$."
```max_match=0表示无限次匹配;field=student_info表示对哪个字段里面的内容进行正则匹配;"\$student.(?<extractfield>\w+)"表示匹配$student开头的,将$student.后面的内容匹配为提取的字段,这个例子中会匹配提取出两个字段```
| rex max_match=0 field=student_info "\$student.(?<extractfield>\w+)"
```foreach *表示对前面存在的所有数据中的所有列进行遍历,也就是遍历的对象是event中的字段名;注意:foreach后面的命令必须是流命令;"<<FIELD>>"用来表示原始数据中的字段名,也就是这里要遍历的