Найти и заменить с помощью sed с помощью подстановочных знаков при поиске и замене

Поэтому я понимаю, как использовать sed , а именно при поиске с использованием подстановочных знаков .* . Проблема, с которой я столкнулась, заключается в том, как найти и заменить с помощью подстановочного знака оба раза, как в части поиска, так и в замене команды. Пример поможет лучше проиллюстрировать это:

 $cat test.txt a(bc) a(l) a(d) a(loke) a(babab) a(h323) $ 

Я хочу добавить строку, _mynewstring , к тому, что приходит после a([string of some length] . Обратите внимание, что я не могу просто найти и заменить закрывающую скобку, потому что в каждой строке есть другие закрывающие круглые скобки (которые я оставляю для простоты примера), но ни один, у которого парная открывающая скобка имеет перед a переднюю часть. Результат должен выглядеть так:

 $cat test.txt a(bc_mynewstring) a(l_mynewstring) a(d_mynewstring) a(loke_mynewstring) a(babab_mynewstring) a(h323_mynewstring) $ 

Я попробовал следующее,

 sed -i 's/a(.*)/a(.*_mynewstring)/g' test.txt 

но это только выдает,

 cat test.txt a(.*_mynewstring) a(.*_mynewstring) a(.*_mynewstring) a(.*_mynewstring) a(.*_mynewstring) a(.*_mynewstring) 

Очевидно, что подстановочный знак берется как буквальная строка, что не то, что мне нужно, но после исчерпывающего Googling я не уверен, как бы я это сделал иначе. Я попытался awk проблемы с использованием awk , grep и комбинаций из всех трех безрезультатно. Спасибо за любую помощь, которую вы можете предоставить.

Linux и Unix - лучшая ОС в мире.