У меня есть большое количество длинных нерегулярных журналов, которые выглядят так:Продолжая AWK или SED печать, включая ключевое слово до конечного рисунка достигается
###<date> errortext <errorcode-xxxxx>
errortext
errortext
errortext
errortext
###<date> errortext <errorcode-yyyy>
errortext
errortext
###<date> errortext <errorcode-<zzzzzzz>
errortext
errortext
errortext
errortext
errortext
errortext
errortext
и т.д.
Длина нерегулярно, и ошибки с одинаковыми кодами ошибок должны быть найдены с использованием методов grep/awk/sed или аналогичных методов.
Мне нужно разбить эти документы по коду ошибки, распечатав все ошибки одного кода в один документ.
Когда я пытаюсь найти весь код ошибки сегмент линии, как:
sed -n '/#</{:start /###/!{N;b start};/<errorcode-024332>/p}' file
Проблема с линиями как выше, что он будет печатать только строку, которая включает в себя «ErrorCode-024332» и не весь код ошибки до начала следующего сегмента (с разделителем «###» в этом случае).
Как это достичь?
https://stackoverflow.com/questions/38972736/how-to-select-lines-between-two-patterns может помочь, например: 'awk «/ ErrorCode-024332/{F = 1; Распечатать; next}/^ ###/{f = 0} f 'file' вы получите 'errorcode-024332' раздел – Sundeep