替换字符串操作时出现格式错误
Got malformed error when do replace string manipulation
我正在跟踪来自 splunk 本身的字符串 manipulation docs
- SPL2 example Returns the "body" field with phone numbers redacted.
...| eval body=replace(cast(body, "string"), /[0-9]{3}[-.][0-9]{3}[-.][0-9]{4}/, "<redacted>");
但是当我尝试查询时
... | eval hostname=replace(cast(hostname, "string"), /cron*/, ""); | ..
我收到错误
Error in 'eval' command: The expression is malformed. An unexpected character is reached at '/cron*/, "a");'.
我很困惑,我做错了什么?
更新:
字符串示例:
pods-name-cron-3829hr832
pods-name-cron-8923eh32b
我的目标是删除 cron-<random_id>
每个不同版本的 Splunk 可能有不同的功能可供使用。请根据您使用的Splunk版本参考文档。
试试这个:
... | eval hostname=replace(toString(hostname), "/cron*/", "") | ..
如果您使用 Splunk 7.3.1
:
,这里有一些链接可能会对您有所帮助
您正在查看 Splunk 数据流处理器 (DSP) 的文档,它不是 Splunk Enterprise。 DSP 是一种将数据导入 Splunk Enterprise(除其他外)的高级方法。您很可能在 Splunk Enterprise 中进行搜索,相关文档位于 https://docs.splunk.com/Documentation/Splunk
如果您尝试重命名字段的一部分并将其替换为空,则需要使用 replace 命令
... | eval hostname=replace(hostname, "cron*", "") | ..
例如,| makeresults | eval hostname="cronmaster.acme.com" | eval hostname=replace(hostname, "cron", "")
将从 cronmaster.acme.com
中删除 cron
Post 字符串示例以及您希望将其转换成什么,我们可以确认替换是否足够,或者是否需要正则表达式。
您可以使用相同的命令,但使用不同的正则表达式。以下查找 -cron-
后跟任何 non-whitespace 个字符,由 \S+
.
表示
| makeresults | eval hostname="pods-name-cron-3829hr832" | eval hostname=replace(hostname, "-cron-\S+", "")
我正在跟踪来自 splunk 本身的字符串 manipulation docs
- SPL2 example Returns the "body" field with phone numbers redacted.
...| eval body=replace(cast(body, "string"), /[0-9]{3}[-.][0-9]{3}[-.][0-9]{4}/, "<redacted>");
但是当我尝试查询时
... | eval hostname=replace(cast(hostname, "string"), /cron*/, ""); | ..
我收到错误
Error in 'eval' command: The expression is malformed. An unexpected character is reached at '/cron*/, "a");'.
我很困惑,我做错了什么?
更新: 字符串示例:
pods-name-cron-3829hr832
pods-name-cron-8923eh32b
我的目标是删除 cron-<random_id>
每个不同版本的 Splunk 可能有不同的功能可供使用。请根据您使用的Splunk版本参考文档。
试试这个:
... | eval hostname=replace(toString(hostname), "/cron*/", "") | ..
如果您使用 Splunk 7.3.1
:
您正在查看 Splunk 数据流处理器 (DSP) 的文档,它不是 Splunk Enterprise。 DSP 是一种将数据导入 Splunk Enterprise(除其他外)的高级方法。您很可能在 Splunk Enterprise 中进行搜索,相关文档位于 https://docs.splunk.com/Documentation/Splunk
如果您尝试重命名字段的一部分并将其替换为空,则需要使用 replace 命令
... | eval hostname=replace(hostname, "cron*", "") | ..
例如,| makeresults | eval hostname="cronmaster.acme.com" | eval hostname=replace(hostname, "cron", "")
将从 cronmaster.acme.com
cron
Post 字符串示例以及您希望将其转换成什么,我们可以确认替换是否足够,或者是否需要正则表达式。
您可以使用相同的命令,但使用不同的正则表达式。以下查找 -cron-
后跟任何 non-whitespace 个字符,由 \S+
.
| makeresults | eval hostname="pods-name-cron-3829hr832" | eval hostname=replace(hostname, "-cron-\S+", "")