По сути, я думаю, что этот вопрос скорее относится к регулярным выражениям, чем к SED, но я использую именно SED, и именно с этого я и начинаю.
У меня есть файл конфигурации web.config для веб-сайта ASP.NET 2.0, для которого я автоматизирую процесс сборки. Я использую UNIXUtils, чтобы дать мне дополнительную мощность сверх того, что предоставляется Windows. Используя SED, кто-то может просветить меня о том, как я могу выполнить следующее;
+ Изменить
Data Source=RANDOM-SERVER;Initial Catalog=SomeDatabase;Persist Security Info=True;User ID=MyUser;Password=*************;
к
Data Source=PRODUCTION-SERVER;Initial Catalog=SomeDatabase;Persist Security Info=True;User ID=MyUser;Password=*************;
Я пробовал следующее
sed s"|Data Source=.*;|Data Source=PRODUCTION-SERVER;|g"
но я получаю
Data Source=PRODUCTION-SERVER;
то есть sed очень старательно жаден и съедает всех персонажей до последней точки с запятой, по крайней мере, это то, что он, похоже, делает.
КСТАТИ: Да, я хотел бы сохранить жадный оператор | g в конце, чтобы гарантировать, что изменение применяется ко всем вхождениям в исходном файле, хотя, теоретически, не должно быть.
Если кто-то может показать мне, как это сделать, я был бы благодарен, хотя я подозреваю, что не существует простого способа сделать это, так как я не смог найти в сети ничего, что соответствовало бы моим требованиям. Досадно, что все сосредоточены на путях той или иной формы.
Если это не может быть сделано в SED, но может быть сделано с помощью чего-то другого в стандартном наборе UNIXUtils, тогда это приемлемый ответ, я открыт для предложений.