IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Splunk中对于字符串中的变量值替换为实际的字段值 -> 正文阅读

[开发工具]Splunk中对于字符串中的变量值替换为实际的字段值

在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>>"用来表示原始数据中的字段名,也就是这里要遍历的字段名,遍历到哪个字段,这个<<FIELD>>就会变成哪个字段,注意这里是双引号;isnotnull(<<FIELD>>),需要先对原始数据中遍历的这个字段是否为空进行判断,否则如果遍历到的这个字段恰好是我们要要替换的字段,那么原始数据中该字段值为空的情况下会导致正则匹配提取失败,会导致整个student_info都变为空;'extractfield'表示前面正则匹配中提取出来的字段,如果原始数据中遍历的某个字段名和'extractfield'中的某个字段名相同,那么就会将student_info中以正则匹配的形式将你要替代的那部分替换为'<<FIELD>>',这里'<<FIELD>>'表示的就是这个字段在原始数据中的实际值,注意这里是单引号;在不满足if条件的情况下,就还是保留原来的内容,不做替换,这样就可以做到只讲我们的字符串中特定的字段变量名替换为实际的变量值;这里也要注意,你在student_info中的字段变量名要和想替换的原始数据中的变量名保持一致,否则字段名不一致,在if判断时也是显然不会匹配成功的。```
| foreach * 
    [eval student_info=if(isnotnull(<<FIELD>>) AND "<<FIELD>>"='extractfield', replace(student_info, "\$student.<<FIELD>>\$",'<<FIELD>>'), student_info)]
| table student_info extractfield name age

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-03-10 22:48:06  更:2022-03-10 22:50:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:44:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码