Кажется, что вы хотите обработать строки в обратном порядке.
Вы можете использовать tac
, чтобы перевернуть файл, а затем использовать пространство удержания более условно:
tac file | sed '/option/{s/.*://;h;d};/line1:/{G;s/\n//}' | tac
Используется h
для удержания флага опции. d
для удаления этой строки.
G
добавляет пробел к каждой строке line1
.
Затем направляет трубку к tac
, чтобы снова изменить порядок строк. Два вызова на tac
будут дорогостоящими, если file
будет большим. Но это может быть более расширяемый код.