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

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

output(), output(abcdefgh), 

становится

 output()); output(abcdefgh)); 

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

  • Как совместить две строки сразу в vim
  • Почему vim не применяет эти цветовые переменные в моей конфигурации?
  • Сопоставьте команду оболочки, чтобы выполнить ее в vim
  • Использование клавиш VI для редактирования команд оболочки в UNIX
  • Редактировать столбчатые данные в vim
  • Безопасный символ в режиме ожидания
  • vi commandline, goto строка и столбец
  • Различные цвета и стили vim в Tmux и Gnome
  • 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 - лучшая ОС в мире.