TextFSM - анализ данных с абзацами
Я пытаюсь проанализировать большой текстовый документ с помощью TextFSM и извлечь некоторые данные с предшествующими заголовками. Пример фрагмента, который я использую, чтобы придумать шаблон:
Fault Management - Alarm Clearing_T-Series, Part 2 of 2 323-1851-544
Standard Issue 1 March 2016
5-82
Alarm clearing procedures—I to Z
Procedure 5-37
ODU/OTU Trace Identifier Mismatch
Alarm IDs: 1447, 1472, 1483, 1501, 1502
Probable cause
This alarm is raised when the trail trace identifier (TTI) value
received by the facility differs from the expected provisioned TTI
value. This can be caused by incorrect fibering or incorrect
provisioning of the TTI value.
<...paragraphs truncated for brevity...>
Impact
Critical, service-affecting (C, SA) alarm
Major, service-affecting (M,SA) alarm
Minor, non-service-affecting (m, NSA) alarm
<...paragraphs truncated for brevity...>
Procedure 5-37 (continued) ODU/OTU Trace Identifier Mismatch
Alarm clearing procedures—I to Z 5-83 <...>
—end—
информация, представляющая интерес для меня:
- Строка после "^ Порядок 5-37$" с названием тревоги
- Строка с идентификаторами тревог после "^ Идентификаторы тревог:"
- Вероятный абзац причины, которому предшествует "^ Вероятная причина $"
- Абзац после заголовка ^Impact$
Я использую следующий шаблон TextFSM:
Value Filldown procedureName (.*)
Value alarmID (.*)
Value probableCause (.*)
Value impact (.*)
Start
^Procedure [0-9\-]*$$ -> Procedure
Procedure
^Alarm IDs: ${alarmID}
^Probable cause -> Cause
^${procedureName}
Cause
#^Probable cause$$ -> Continue
^$$ -> Continue
^${probableCause} -> Continue
^$$ -> Continue
^Impact -> Impact
Impact
^Impact -> Continue
^$$ -> Continue
^${impact} -> Continue
^$$ -> Record Start
^—end— -> Record Start
Однако изменение состояния, использование ключевых слов Continue и соответствие регулярному выражению не происходит, как я ожидаю, и я получаю это:
procedureName, alarmID, probableCause, impact
[['', '1447, 1472, 1483, 1501, 1502', 'Impact', ''], ['', '', '', '']]
Может ли кто-нибудь помочь мне исправить шаблон или указать правильное направление, чтобы я мог получить что-то вроде:
[['ODU/OTU Trace Identifier Mismatch', '1447, 1472, 1483, 1501, 1502', ,'This alarm is raised when the trail trace identifier (TTI) value received by the facility differs from the expected provisioned TTI value. This can be caused by incorrect fibering or incorrect provisioning of the TTI value.', 'Critical, service-affecting (C, SA) alarm \nMajor, service-affecting (M,SA) alarm\nMinor, non-service-affecting (m, NSA) alarm']