Полагаю, вы перезагрузили систему после обновления. Если да, то это не удалось, поскольку ваша система явно все еще использует более старое ядро.
Если автоматическое обновление не удалось, вручную проверьте конфигурацию загрузчика и убедитесь, что при загрузке вызывается правильный образ.
Если это виртуальный интернет-хост, есть вероятность, что у вас есть доступ только к контейнерной системе. В этом случае вы не можете самостоятельно изменить ядро.
Это не работа дляsed
(вы не должны полагаться на последовательные повторяющиеся записи ). Используйтеawk
:
Установите разделитель записей на регулярное выражение ^-+$
.
Используйте ассоциативный массив, где индекс представляет собой конкатенацию HostName и ServiceName. Для любой прочитанной записи поместите запись в массив, только если она еще не существует.
В конце обработки файла распечатайте все элементы массива, отформатированные в отдельные строки, с вашими ----
строками-разделителями.
GNUawk
подход:
awk 'BEGIN{
RS = ORS = "-------\n";
pat = "^Hostname += ([^ ]+)\nService name += ([^ ]+)\n$";
}
NR == FNR{
if (match($0, pat, a)) { items[a[1], a[2]]++ }
next
}
match($0, pat, a) && (a[1], a[2]) in items \
&& items[a[1], a[2]] > 1{ next }1' inout.txt input.txt
Выход:
-------
Database alias = ABC
Node name = node01
Hostname = hostnode01
Service name = 12345
-------
Database alias = PQR
Node name = node01
Hostname = hostnode01
Service name = 12345
-------
Database alias = XYZ......
-------