Получена некорректная ошибка при замене манипуляции со строкой - PullRequest
0 голосов
/ 01 августа 2020

Я просматривал строку документы манипуляции из самого splunk

  1. Пример SPL2 Возвращает поле «body» с удаленными номерами телефонов.

...| 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>

Ответы [ 3 ]

3 голосов
/ 01 августа 2020

Вы просматриваете документацию для Splunk Data Stream Processor (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", "") удалит cron из cronmaster.acme.com

Разместите пример строка и то, во что вы хотите ее преобразовать, и мы можем подтвердить, достаточно ли замены или требуется ли регулярное выражение.

0 голосов
/ 03 августа 2020

Вы можете использовать ту же команду с другим регулярным выражением. Следующее ищет -cron-, за которым следуют любые непробельные символы, что представлено \S+.

| makeresults | eval hostname="pods-name-cron-3829hr832" | eval hostname=replace(hostname, "-cron-\S+", "")
0 голосов
/ 01 августа 2020

Каждая версия Splunk может иметь разные функции, доступные для использования. См. Документацию в соответствии с используемой версией Splunk.

Попробуйте следующее:

... | eval hostname=replace(toString(hostname), "/cron*/", "") | ..

Вот несколько ссылок, которые могут оказаться полезными, если вы используете Splunk 7.3.1:

...