Splunk запрос не заканчивается

Я просто изучаю запросы Splunk, я пытаюсь получить данные из myfile.csv файла на основе выражения regex.

В частности, я с нетерпением жду, печатайте только те строки, где столбец fqdn не заканчивается на udc.net и htc.com.

Ниже мой запрос, который работает, но я пишу его дважды.

| inputlookup myfile.csv 
| regex support_group="^mygroup-Linux$" 
| regex u_sec_dom="^Normal Secure$" 
| regex fqdn!=".*?udc.net$"
| regex fqdn!=".*?htc.com$"
| where match(fqdn,".")

Я пытаюсь их совместить с | separeted, но не работаю ...

   | regex fqdn!="(.*?udc.net | ".*?htc.com)$"

person Karn Kumar    schedule 15.03.2021    source источник


Ответы (2)


Вы можете сделать это с помощью предложений search и where:

| inputlookup myfile.csv 
| search support_group="mygroup-Linux" u_sec_dom="Normal Secure"
| where !match(fqdn,"udc.net$") AND !match(fqdn,"htc.com$") 

Или просто одно предложение search:

| inputlookup myfile.csv
| search support_group="mygroup-Linux" u_sec_dom="Normal Secure" NOT (fqdn IN("*udc.net","*htc.com")

Вы также можете переписать IN() следующим образом:

(fqdn="*udc.net" OR fqdn="*htc.com")
person warren    schedule 16.03.2021
comment
есть ли у вас идея на случай, если мне нужно будет найти строку, содержащую более 5 цифр, например inv010168062105.examle.com "inv\d{10,}\.example\.com". - person Karn Kumar; 16.03.2021
comment
Я могу немного справиться с этим, например | regex fqdn="(^inv\d{6})" или | regex fqdn="(\w{2}\d{6})" - person Karn Kumar; 16.03.2021
comment
@KarnKumar - задавайте это в отдельном вопросе, а не в комментариях :) - person warren; 17.03.2021

Комбинированное регулярное выражение будет работать, если вы опустите пробелы по обе стороны от |. Дополнительные пробелы становятся частью регулярного выражения и предотвращают совпадения.

В последней команде where нет необходимости. Splunk по умолчанию отображает все события, соответствующие ..

person RichG    schedule 15.03.2021
comment
@ RichG, спасибо за ответ, однако первое предложение работает, необходима команда where, чтобы удалить row, где feild fqdn пусто, если я удалю where stateent, он также распечатает все пустые строки для столбца fqdn. - person Karn Kumar; 16.03.2021