По сути я хочу создать сценарий для развертывания сценария подключения к базе данных для размещения ветвей SVN.
Файл шаблона выглядит примерно так:
//comments
//comments
//comments
//$db="user:pass@host/###branchdb###";
//other stuff
В основном я хочу:
- Найдите строку по ### branchdb ###
- Удалить комментарии в начале строки '//'
- Заменить ### branchdb ### аргументом скрипта
Скрипт основан на Perl, так что, думаю, я бы хотел выполнить эту задачу с помощью Perl, хотя я понимаю, что Bash / Linux Environment предоставляет множество инструментов для достижения этой цели, поэтому, если мне нужно их использовать, будь это.
Я также предполагаю, что мне понадобится некоторое количество регулярных выражений для этого? Возможно, нет, однако я бы, конечно, хотел, так как регулярное выражение является постоянной точкой отказа для меня, поэтому, чем больше у меня будет оправданий, чтобы попытаться обдумать это, тем лучше:)
Спасибо за любую помощь!
Полное решение с помощью Уэса:
open IN, $sourceFile or die "Can't open $sourceFile";
open OUT, ">$destinationFile" or die "Can't write to $destinationFile";
while(<IN>) {
if ($_ =~ m/%BRANCH_DB%/) {
$_ =~ s!^\s*//!!;
$_ =~ s/%BRANCH_DB%/$branch/;
}
print OUT $_;
}
close(IN);
close(OUT);
Также я изменил ### branchdb ### на% BRANCH_DB%, как мне сообщили, что это более распространенный заполнитель.