Vim: преобразовать обратные к нотации $ () в сценарии оболочки

Предположим, что у меня есть некоторые инструкции в скрипте shell (bash), например

var=`cat file.txt` echo "Date is: `date`" 

Я хочу преобразовать обратную обратную запись в нотацию $() например:

 var=$(cat file.txt) echo "Date is: $(date)" 

Как я могу сделать это в Vim с помощью поиска / замены для всего файла?

Мотивация: https://github.com/koalaman/shellcheck/wiki/SC2006

  • vim.googlecode.com Изменение сертификата SSL
  • Vimrc, управление картой; к действию
  • vim избегать выбора подчеркивания
  • Как выражать «Есть указанный символ в следующих неизвестных числах символов» в regex (vim)?
  • Мой терминал чистый белый // удаление вещей, которые spf13 сделал с моим Ubuntu
  • Использование Regex в vim movment
  • Проверка окончаний строки из текста, созданного perl-скриптом
  • Необходимо ввести специальный символ в vi
  • One Solution collect form web for “Vim: преобразовать обратные к нотации $ () в сценарии оболочки”

    Можешь попробовать

     :% s/`\([^`]*\)`/$(\1)/gc 

    g делает его глобальным (для всех записей в строке), c позволяет vim запрашивать пользователя о каждой замене.

    Но он не будет работать с вложенными backticks и многострочным кодом. Только для пар обратных линий в очереди.

    Вы также можете выйти из vim и использовать sed для этого:

     sed -n -i.backup 'N; ${s/`\([^`]*\)`/$(\1)/g; p; q}; b' filename 

    Он будет работать с многострочными backtrics, но без вложенных.

    Interesting Posts

    openssl s_client зависает

    трубы – вставка трубы в середину строки

    Почему потоки с самым высоким приоритетом отображаются с RT в верхнем и верхнем тонах?

    ls ведет себя по-разному под strace

    Клавиши Remap для всех макетов

    Добавление латентности при доступе к определенным веб-сайтам под Linux

    Загрузка операционной системы с загрузочного дополнительного жесткого диска через VirtualBox

    Эмуляция escape-последовательностей VT220 в Konsole keytab

    История UNIX, не включая текущий каталог в $ PATH

    При установке пакета .deb или .rpm всегда добавляется репозиторий в вашу систему?

    Установка ОС из источника на отдельный раздел. Это возможно?

    Включить поддержку мыши в консоли для приложений, которые ее используют в терминалах GUI

    можно ли предположить, что мои используемые команды существуют по умолчанию почти со всеми дистрибутивами

    перезагрузка с одноразовыми параметрами ядра

    Восстановить поврежденный .tar, сохраненный с Android

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