Não é em grande parte uma questão de substituir o% final!d
('não excluir') por s/\n/\n@/g;
('substituir novas linhas por novas linhas mais um caractere adicional')?
$ cat file
hello
this
is
a
test
hi
$ sed -e '1{x;$!d}' -e '/./{H;$!d;}' -e 'x;/test/ s/\n/\n@/g;' file
hello
@this
@is
@a
@test
hi
A expressão extra 1{x;$!d}
apenas evita uma linha em branco adicional que resultaria da anexação da primeira linha ao espaço de armazenamento (vazio).