Примерно так может подойти.
sed -rne '/^name: "\."/{n;n;h;d};1{h;d};x;p;${g;p}' -i file
Опция -i
позволяет Sed изменять файл на месте.Команды Sed h
, g
и x
используют Sed's hold space для удержания предыдущей строки, пока текущая строка не будет проверена.Адреса 1
и $
соответственно обрабатывают первую и последнюю строки файла, которые, вероятно, требуют особой обработки.
Хотя это было учебное упражнение, по общему признанию, Awk или даже Perl могли бы быть лучшим инструментом, чемСед для такой многострочной обработки.Тем не менее, с некоторыми дополнительными усилиями, Сед может выполнить работу, как вы видите.