У меня есть файл xml в операторе регистрации, в котором я извлек 3 экземпляра значения. Эти значения корректно отображаются в таблице в отдельных столбцах. Это запрос:
source="messaging-service.log" sourcetype="hidden" "createMessage MsgSource" | xmlkv | rex max_match=0 "\<purchCostReference\>(?P<segment>[^\<]+)" | eval Segment1 = if(isnotnull(mvindex(segment, 0)), "FirstSegment", ""), Segment2 = if(isnotnull(mvindex(segment, 1)), "SecondSegment", ""), Segment3 = if(isnotnull(mvindex(segment, 2)), "ThirdSegment", "") | table purchCostReference, eventType, Segment1, Segment2, Segment3
Я хотел бы, чтобы был 1 столбец, сегмент и первый сегмент, второй сегмент, третий сегмент были перечислены в столбец. Есть ли какая-либо функция Splunk, которая позволяет мне создать группу под названием «Сегмент» и добавить к ней переменные FirstSegment, SecondSegment, ThirdSegment?
UPDATE Я пробовал использовать оператор case, но он возвращает только первое значение, FirstSegment в таблице.
sourcetype... | xmlkv | rex max_match=0 "\<purchCostReference\>(?P<segment>[^\<]+)" | eval Segments = case(isnotnull(mvindex(segment, 0)), "FirstSegment", isnotnull(mvindex(segment, 1)), "SecondSegment", isnotnull(mvindex(segment, 2)), "ThirdSegment") | table purchCostReference, eventType, Segments | eventstats list(Segments) as Segments by purchCostReference, eventType | sort purchCostReference, eventType
Результаты