Splunk 搜索中的正则表达式
RegEx in Splunk Search
如您所见,我是 Splunk 的新手,但我继承了尝试找出现有仪表板并对其进行修改的尝试。
现有搜索:
"Policy_Name=Authentication EventCode=1 *$name$*
| eval TimeOfRequest= _time | table TimeOfRequest, ResultMessage,
|rex field=_raw (FullyQualifiedUserName=[^/]+$), Calling_Station_Identifier
| convert timeformat="%b %d, %Y %I:%M:%S %p" ctime(TimeOfRequest)"
输出:
TimeOfRequest Dec 10, 2015 11:04:16 AM
ResultMessage User BobSmith was granted access.
FullyQualifiedUserName domain.local/OU1/OU2/OU3/OU4/Smith, Bob
Calling_Station_Identifier 192.168.1.1
我被要求对输出稍作修改。我需要通过删除完整路径来清理 FullyQualifiedUsername
,只留下 Lastname
、Firstname
,即 "Smith, Bob"。我调查了 运行 某种针对该字段的正则表达式,但我没有产生任何结果,只有错误。
下面是我的查询示例:
"Policy_Name=Authentication EventCode=1 *$name$*
| eval TimeOfRequest= _time
| table TimeOfRequest, ResultMessage, regex
(FullyQualifiedUserName = [^/]+$), Calling_Station_Identifier
| convert timeformat="%b %d, %Y %I:%M:%S %p" ctime(TimeOfRequest)"
或
Policy_Name=Authentication EventCode=1 *$name$*
| eval TimeOfRequest= _time | table TimeOfRequest, ResultMessage,
| rex field=FullyQualifiedUserName "[^/]+$", Calling_Station_Identifier
| convert timeformat="%b %d, %Y %I:%M:%S %p" ctime(TimeOfRequest)
任何试图计算此查询的帮助将不胜感激。
我附近没有 Splunk 实例,但也许这会对您有所帮助:
... | rex field=FullyQualifiedUserName ".+\/(?<first>.+),\s?(?<second>.+)"
如果您想了解更多关于正则表达式测试的信息:
.+\/(.+),\s?(.+)
您应该可以在以下时间后执行此操作:
... | top first second
当然,我假设您所有的日志都具有相同的格式。
来源:http://docs.splunk.com/Documentation/Splunk/6.1/SearchReference/Rex
如果有错误请告诉我...
如您所见,我是 Splunk 的新手,但我继承了尝试找出现有仪表板并对其进行修改的尝试。
现有搜索:
"Policy_Name=Authentication EventCode=1 *$name$*
| eval TimeOfRequest= _time | table TimeOfRequest, ResultMessage,
|rex field=_raw (FullyQualifiedUserName=[^/]+$), Calling_Station_Identifier
| convert timeformat="%b %d, %Y %I:%M:%S %p" ctime(TimeOfRequest)"
输出:
TimeOfRequest Dec 10, 2015 11:04:16 AM
ResultMessage User BobSmith was granted access.
FullyQualifiedUserName domain.local/OU1/OU2/OU3/OU4/Smith, Bob
Calling_Station_Identifier 192.168.1.1
我被要求对输出稍作修改。我需要通过删除完整路径来清理 FullyQualifiedUsername
,只留下 Lastname
、Firstname
,即 "Smith, Bob"。我调查了 运行 某种针对该字段的正则表达式,但我没有产生任何结果,只有错误。
下面是我的查询示例:
"Policy_Name=Authentication EventCode=1 *$name$*
| eval TimeOfRequest= _time
| table TimeOfRequest, ResultMessage, regex
(FullyQualifiedUserName = [^/]+$), Calling_Station_Identifier
| convert timeformat="%b %d, %Y %I:%M:%S %p" ctime(TimeOfRequest)"
或
Policy_Name=Authentication EventCode=1 *$name$*
| eval TimeOfRequest= _time | table TimeOfRequest, ResultMessage,
| rex field=FullyQualifiedUserName "[^/]+$", Calling_Station_Identifier
| convert timeformat="%b %d, %Y %I:%M:%S %p" ctime(TimeOfRequest)
任何试图计算此查询的帮助将不胜感激。
我附近没有 Splunk 实例,但也许这会对您有所帮助:
... | rex field=FullyQualifiedUserName ".+\/(?<first>.+),\s?(?<second>.+)"
如果您想了解更多关于正则表达式测试的信息:
.+\/(.+),\s?(.+)
您应该可以在以下时间后执行此操作:
... | top first second
当然,我假设您所有的日志都具有相同的格式。
来源:http://docs.splunk.com/Documentation/Splunk/6.1/SearchReference/Rex
如果有错误请告诉我...