У меня есть экземпляр Splunk, который собирает данные веб-трафика и хотел бы найти список уникальных строк запроса из известного URL-адреса и создать подсчет каждого из них.spunk regex для поиска и подсчета строк запроса URL-адреса
Каждый URL имеет строку запроса прилагается в следующем формате:
httx://www.sitename.com?v=123456×tamp=1234456456458
httx://www.sitename.com?v=999999×tamp=1234456456602
httx://www.sitename.com?v=123456×tamp=1234456457001
httx://www.sitename.com?v=459743×tamp=1234456457365
httx://www.sitename.com?v=010101×tamp=1234456458777
Что я надеюсь получить это подсчет каждого «V» значение, не зная заранее, что существуют ценности (но я знаю, что они номенклатурные и всегда 6 цифр), поэтому я предполагаю, что мне понадобится регулярное выражение.
Я думаю, что это будет выглядеть примерно так?
index=URLData sourcetype =* www.sitename.com "v=" | rex "(?P<stringdata>.+)(?v=:\d{6}):?" | count by stringdata
или '(? [^ &] +) (? \ д {6})' или '(? [^? &] +) (? \ d {6})' или '(? [^ &] +) [?] v = (? \ d {6})'. –
Я не могу заставить его работать. Может быть, потому, что URL-адрес содержит «?». Нужно ли ускользнуть от работы с sed? – user5744264
Если вы используете его внутри класса символов, вам не нужно скрывать '?'. Однако в sed вы не можете использовать именованные фрагменты. Просто используйте '([^ &] +) [?] V = ([0-9] {6})' или '([^ &] +) [?] V = ([0-9] \ {6 \}) '. –