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

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

output(), output(abcdefgh), 

становится

 output()); output(abcdefgh)); 

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

  • Как найти изменения в файле последней модификации?
  • Как использовать vim-slime из одного сеанса tmux?
  • Поиск круглых скобок с% в vim по линиям
  • Как переназначить «dead_hook» в Emacs и Vim?
  • Как мой текстовый файл может быть заполнен символами ^ M внезапно?
  • Документация для vifm?
  • Почему Vi имеет несколько режимов?
  • Обтекание текста электронной почты способом, совместимым с форматом = flowed, например, с использованием параметра par
  • 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 - лучшая ОС в мире.