Это может сработать для вас (GNU sed):
sed ':a;N;/^column1:.*\ncolumn2:/!D;N;/\nkolumn3:/b;s/.*\n//;ta' file
Считайте две строки в пространство шаблона и, если они не совпадают, column1:
, затем column2:
, удалите первую и повторите. В противном случае добавьте третью строку и, если она соответствует kolumn3:
, напечатайте все три строки, если нет, удалите первые две строки и вернитесь к началу сценария sed.
Другое решение:
sed -n '/\n/!N;N;/^column1:[^\n]*\ncolumn2:[^\n]*\nkolumn3:[^\n]*$/p;//!D' file