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

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

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

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

  • Сравнение значений float в bash
  • ключевое слово grom () в bash бросает неожиданный '(' токен
  • Сравнение индексов двух строк
  • сравнить файлы по строкам и создать новое одно bash-программирование
  • Удалить строки, содержащие X в определенном столбце .csv
  • Сглаживание структуры папок
  •  $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 и комбинаций из всех трех безрезультатно. Спасибо за любую помощь, которую вы можете предоставить.

  • Файл читается всеми, но я не могу открыть файл
  • ksh: для цикла для циклического прохождения файлов в определенном каталоге
  • Как написать сценарий оболочки с использованием условия из базы данных
  • Сколько снарядов я глубоко?
  • Можете ли вы указать, был ли файл переименован?
  • Вопрос о структуре и циклах
  • One Solution collect form web for “Найти и заменить с помощью sed с помощью подстановочных знаков при поиске и замене”

    Побег ( и поиск не ) . Используйте \1 чтобы сохранить согласованную группировку.

     sed 's/a\(([^)]*\))/a\1_mynewstring)/g' file1 

    дает:

     a(bc_mynewstring) a(l_mynewstring) a(d_mynewstring) a(loke_mynewstring) a(babab_mynewstring) a(h323_mynewstring) 
    Linux и Unix - лучшая ОС в мире.