Мне было поручено заменить целый ряд жестко закодированных идентификаторов в некотором коде (например: private static String MERCHANT_ID = "1234";
) где-то ссылками на файл конфигурации (поэтому заменяемая версия для этого примера должна быть private static String MERCHANT_ID = ConstantMerchants.MERCHANT_A;
).
Функция поиска и замены по умолчанию в Eclipse была бы хороша, если бы я заменял только несколько идентификаторов, но это не так. У меня есть двадцать проектов, все они содержат сотни файлов с несколькими различными обозначениями старой строки.
Я уже составил список шаблонов регулярных выражений, которые соответствуют всем возможным обозначениям.
Есть ли способ использовать sed, чтобы заменить все старые строки на новые версии, если где-то есть файл конфигурации, содержащий старый шаблон, и чем он должен быть заменен?
Я ищу что-то, что позволяет мне определять шаблоны с новым значением, думать о чем-то похожем на это: (но затем с еще несколькими идентификаторами)
# old | new
/merchantId:\s*("|')1234("|'),/|merchantId: ConstantMerchants.MERCHANT_A
/private static String MERCHANT_ID\s*=\s*("|')1234("|');/|private static String MERCHANT_ID = ConstantMerchants.MERCHANT_A
Если бы я использовал какой-то другой инструмент, который поможет мне лучше решить эту проблему, я бы хотел услышать об этом. Я бы очень хотел использовать новую функцию Bash для Windows, но это только потому, что она выглядит круто :)