splunk - 如何提取splunk字段中最后一个斜杠后的内容?
问题描述
我是 splunk 的新手。所以我有一个日志,其中包含这种格式的内容(事件)
tool_code: error_code (path1/path2/path3/filename1,line) path1.path2.path3.testname1
我写 rex 来提取文件名和测试名 rex 是
|rex field=_raw (?<UNW>\S+)\s+(?<UNWA>\S+)\s+(?<FILE_NAME>\S+)\s+(?<TEST_NAME>\S+)
这创建了这种格式的表(通过使用这个命令|table FILE_NAME, TEST_NAME
)
FILE_NAME -------------------------------------- TEST_NAME
path1/path2/path3/filename1,line ------------ path1.path2.path3.testname1
但我希望 FILE_NAME 只保存名称(filename1)而不是路径(我们应该在最后一个斜杠之前和逗号之后提取内容),同样 TEST_NAME 应该只有 testname1 而不是路径。
请帮助我实现这一目标
解决方案
您创建了一个名为“FILE_NAME”的字段。您现在可以做的是使用 split 命令创建一个新字段:
`eval OnlyFileName = mvindex(split(FILE_NAME,"/"),-1)`
eval = 创建新字段
mvindex(split = 拆分命令
“/” = 除以 /
-1 = 列表中的最后一个对象。
继续分裂,直到你得到你想要的。
我建议使用这种方式,这比一直使用正则表达式要简单得多。花费更少的时间...
推荐阅读
- celery - celery 中的回调函数
- integer - 在整数乘法中使用哪个更快或更短的 CPU 周期?例如:2 * 2 和 123456789 * 123456789
- ios - UIActivityViewController 在 iOS 中获取活动名称
- python - 从列表中拆分数据
- spring - Spring批处理和Spring Boot中的数据源问题
- c++ - 高效压缩 mmap 缓存
- three.js - 防止灯光照在物体上 three.js ;图层
- linux - linux/unix系统中管道运算符/管道符(竖线符“|”)的可执行文件是什么
- c# - 增量 Nuget 包版本 NetStandard 本地文件夹 Visual Studio 2017
- json - 如何使用 Go 部分解析 JSON?