我正在尝试获取这种格式的前三组IP地址:10.10.10.10
期望值将是10.10.10
能够这样得到它:
rex field=IP "(?<first_three>\d+\.\d+\.\d+)\.\d+"
另一种方法。
..| rex field=ip_addr "(?<split_ip>.+)\.[0-9]+"
哪里,
ip_addr - 字段名称
split_ip - 将存储拆分IP地址的变量
Splunk查询:
| stats count | eval ip = "115.124.35.123" | rex field=ip "(?<split_ip>.+)\.[0-9]+" | table split_ip
输出:115.124.35
以下对我有用。 rex field=_raw "(?<ip_address>^\d+\.\d+\.\d+\.\d+)"|timechart count by ip_address
https://regex101.com/是这类东西的超级有用工具。它允许您编写正则表达式并实时测试不同的字符串。
获得所需内容后,使用rex命令将其粘贴到Splunk搜索查询中。
要回答您的确切问题:
(?<MY_FIELD_NAME_HERE>\d+\.\d+\.\d+)\.\d+
https://regex101.com/r/qTTf4e/2
... | rex field="ORIGNAL_FIELD" "(?<MY_FIELD_NAME_HERE>\d+\.\d+\.\d+)\.\d+"