Как использовать переменные в замене с регулярными выражениями энергии

Чтобы отключить Teamviewer при запуске :

teamviewer --daemon disable
0
16.03.2015, 13:02
4 ответа

Да, с помощью capture groups. В основном, части образца оберните с помощью \(...\) и ссылка на запасную часть с помощью \1 и т.д.. :

:%s/Uset\(\d\d\)-\(\d\)/USet\1\2

Так как вы хотите удалить только одну часть паттерна, более короткая опция ограничивает фактическое совпадение (но все равно утверждая, что все вокруг тоже есть) через \zs (начало совпадения) и \ze (конец совпадения):

:%s/Uset\d\d\zs-\ze\d//

Это все очень простые вещи, и группы захвата являются общими во многих инструментах, основанных на регулярных выражениях (например, sed). Научитесь искать команды вверх и ориентироваться во встроенной :help; она всеобъемлющая и предлагает много советов. Вы не выучите Vim так быстро, как другие редакторы, но если вы возьмете на себя обязательства по непрерывному обучению, то он окажется очень мощным и эффективным редактором.

4
28.01.2020, 02:17

Я сам нашел решение, используя сопоставление подстрок, благодаря помощи vim:

:%s/\(USet\d\d\)-\(\d\)/\1\2/gc
1
28.01.2020, 02:17

С регулярным выражением будет проще работать, если использовать префикс шаблона \v. При этом вам не нужно убегать (, {, [и так далее.

:%s/\vUSet(\d\d)-(\d)/USet\1\2/
0
16.09.2021, 15:44
Using sed command

sed "/^USet/s/-//" filename >outputfile

Suppose if you want to perform on orginal file

sed -i "/^USet/s/-//" filename

выход

USet071
USet072
USet081
USet082

awk-команда

awk '/^USe/{sub("-","",$0);print }' filename >outfile

output

USet071
USet072
USet081
USet082
0
16.09.2021, 19:35

Теги

Похожие вопросы