Изменение конца строки всякий раз, когда она содержит определенную строку

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

output(), output(abcdefgh), 

становится

 output()); output(abcdefgh)); 

Поэтому в основном я хочу обнаружить "output( удалить и добавить ); в конец каждой строки, которая соответствует указанному условию.

  • Vim: вставка строк по строкам
  • Почему эти два vim autocmd перекрывают друг друга?
  • Как отправить вывод cmd в tmp-файл, одновременно просматривая файл tmp в vim
  • Как перемещаться назад из текстового / двоичного файла в листе каталога Vim's Netrw?
  • Можно ли добавить ci "(или ci ', ci {и т. Д.) В режим vi в bash?
  • Tmux не может различать вставку и вставку
  • Как написать любой Unicode-ключ без предварительно запрограммированного ключа для него в kbd?
  • console vim в сеансе экрана: переназначить Ctrl-Shift-Left, Ctrl-Shift-Right, чтобы не удалять строки
  • 2 Solutions collect form web for “Изменение конца строки всякий раз, когда она содержит определенную строку”

    В Vim:

     :g/output(/ s/,$/);/ 

    :g /pattern/ запускает команду на всех строках, соответствующих pattern , и команда s затем заменяет конец строки: a ); ,

    Если я правильно понимаю, вы хотите

     otherline(), ... output(), ... output(abcdefgh), output 

    для перевода на

     otherline(), ... output()); ... output(abcdefgh)); output 

    Я стараюсь использовать Perl:

     perl -pe 's/output\(.*?\)\K,$/);/' 
    Linux и Unix - лучшая ОС в мире.