У меня есть журнал, в котором есть записи в нескольких строках. Запись всегда начинается с даты в виде 2019-04-05 09: 32: 58,543. Единственный индикатор того, что начинается следующая запись в журнале, это то, что у меня снова есть дата. В первой строке также есть уникальный идентификатор (XKcEpaUgg3QvsUTsQSuaIwAAATT в приведенном ниже примере).
С помощью https://stackoverflow.com/a/17988834/55070 я мог бы придумать команду awk, которая довольно близка. Команда awk 'flag;/2019.*\| XKcEpaUgg3QvsUTsQSuaIwAAATT \|.*/{flag=1;next}/2019.*/{flag=0}' logfile
почти работает. Проблема в том, что она отображает не первую строку записи в журнале, а следующую строку после записи.
Поскольку второй шаблон в команде awk также соответствует первому шаблону, команда без следующего вернет только первую строку.
Один из примеров записи в журнале:
2019-04-05 09:32:58,543 | some information for the first line | XKcEpaUgg3QvsUTsQSuaIwAAATT | more info |
first body line
second body line
some more information
2019-04-05 09:32:58,765 | some information for the next log entry | OTHER_ID | more info |