Как вставить символ в начале каждой строки абзаца, который содержит строку

Несколько разных запросов здесь: у меня есть текстовый файл, в котором мне нужно поместить символ @ в начале каждого абзаца (абзацы = отделены пустым строками), который содержит определенную строку поиска. Например

 hello this is a test hi 

Должна давать:

 hello @this @is @a @test hi 

У меня есть следующее для выборочной печати абзаца, но он не будет вставлять символ # в начале каждой строки:

 sed -e '/./{H;$!d;}' -e 'x;/SEARCH_STRING/!d;' 

Есть идеи? Заранее спасибо!

Разве это не связано с заменой final !d ('не удалять') с помощью s/\n/\n@/g; («заменить новые строки новыми символами плюс дополнительный символ»)?

 $ 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 

Дополнительное выражение 1{x;$!d} просто предотвращает дополнительную пустую строку, которая в противном случае была бы результатом добавления первой строки в (пустое) пространство удержания.