Допустим нужно заменить значения тегов, но они разные в каждой строке и обычными методами поиска замены такого не сделать. Но это лекго делается с помощью регулярных выражений в редакторе Vim.
Подготовим в Excel таблицу соответствия тега строке. В одном столбце строка для замены, в следующем имена тегов для замены.
Исходная строка | Выражение для замены |
ServerName=Server-Tag=Tag1-ID=4546464-Rule=False | Tag35 |
ServerName=Server-Tag=Tag2-ID=4546464-Rule=False | Tag36 |
ServerName=Server-Tag=Tag3-ID=4546464-Rule=False | Tag37 |
ServerName=Server-Tag=Tag4-ID=4546464-Rule=False | Tag38 |
Скопируем текст из двух столбцов и вставим в Vim. Для перехода в режим команд нажми ESC. Введи команду и нажми Enter.
исходная строка
ServerName=Server-Tag=Tag1-ID=4546464-Rule=False Tag35
команда
:%s/\(.*Tag=\).*\(-ServerU.*\)\(T.Uis3.*\)/\1\3\2/g
результат
ServerName=Server-Tag=Tag35-ID=4546464-Rule=False
В итоге мы заменили во всех строках выражение между [выражение1] и [выражение2] на [выражение3].
Каждое выражение разделено на группы. Группы отделяются скобками, скобки необходимо экранировать обратным слэшем \(.*Tag=\). При замене номер группы идут по порядку их определения /\1\3\2.