Я понял: после однократного сохранения настроек Jenkins (в графическом интерфейсе) он сгенерирует XML-файлы для конфигураций плагинов в $JENKINSHOME
.
Должно было знать, что я работаю с докером Дженкинсом.
Общий ответ:
Используйте regex для соответствия и AAAA и CCCC, затем замените каждым соответствием с CCCC и AAAA соответственно.
редактирование для разрешения беспорядка
str1.gsub(/(AAAA|CCCC)/) { $1 == 'AAAA' ? 'CCCC' : 'AAAA' }
отредактируйте я думал о более изящном слишком :)
str1.gsub(/((AAAA)|(CCCC))/) { $2 ? 'CCCC' : 'AAAA' }
Действительно ли это - опция для Вас заменить AAAA чем-то еще сначала и затем продолжиться?
str1.gsub("AAAA","WXYZ") # WXYZ BBBB CCCC DDDD
str1.gsub("CCCC","AAAA") # WXYZ BBBB AAAA DDDD
str1.gsub("WXYZ","CCCC") # CCCC BBBB AAAA DDDD
Решение (хотя что-то базировалось вокруг regex, будет лучшим) было бы чем-то вроде создания заменяющего хеша как такового, который может быть расширен по мере необходимости. Я просто быстро соединил это для демонстрации. Я уверен с немного большей любовью и уходом, можно придумать что-то более изящное, которое работает в том же направлении, как эта реализация только работает на строки с пробелами.
str1 = "AAAA BBBB CCCC DDDD"
replacements = { "AAAA" => "CCCC", "CCCC" => "AAAA", "XXXX" => "ZZZZ" } # etc...
new_string = ""
str1.split(" ").each do |s|
new_string += replacements[s] || s
new_string += " "
end
puts new_string # CCCC BBBB AAAA DDDD