У меня есть несколько строк, подобных приведенным ниже, которые были возвращены моим поиском в спланке:
"CN=aa,OU=bb,DC=cc,DC=dd,DC=ee"
"CN=xx,OU=bb,DC=cc,DC=yy,DC=zz"
"CN=ff,OU=gg,OU=hh,DC=ii,DC=jj"
"CN=kk,DC=ll,DC=mm"
Примечание: CN, OU, D C может быть 0 или много.
Моя конечная цель чтобы найти все OU, как показано ниже.
(комбинации также должны быть уникальными.)
(все пустые строки могут быть исключены.)
например:
bb (blank)
gg hh
(blank) (blank)
Запрос то, что я использую в настоящее время, очень наивно.
Плюс это не обобщенно c.
Это сработает, если хотя бы один из моих результатов разбит на 5 частей (0,1,2,3,4).
Но это не сработает и даст пустые результаты, если ни один из моих результатов не разделен на 5 частей (0,1,2,3,4), т.е. все они дают менее 5 частей.
index=xx sourcetype=yy
| fields s
| rex field=s mode=sed "s/,DC=.*//g"
| eval temp=split(s,",OU=")
| eval a=mvindex(temp,1)
| eval b=mvindex(temp,2)
| eval c=mvindex(temp,3)
| eval d=mvindex(temp,4)
| dedup a b c d
| table a,b,c,d
Как сделать его обобщенным c т.е. получить счетчик разбиения и сделать поля в соответствии с максимальной длиной разбиения?