我想搜索一个子字符串,并在找到子字符串时替换整个字符串。在下面的例子中,someVal可以是我不知道的任何值。perl搜索并替换一个子字符串
我如何搜索someServer.com并将$ oldUrl和$ newUrl替换为整个字符串?
我能做到这一点对整个字符串就好了:
$directory = "/var/tftpboot";
my $oldUrl = "someVal.someServer.com";
my $newUrl = "someNewVal.someNewServer.com";
opendir(DIR, $directory) or die $!;
while (my $files = readdir(DIR)) {
next unless ($files =~ m/\.cfg$/);
open my $in, "<", "$directory/$files";
open my $out, ">", "$directory/temp.txt";
while (<$in>) {
s/.*$oldUrl.*/$newUrl/;
print $out $_;
}
rename "$directory/temp.txt", "$directory/$files";
}
替换中的'。*'使得整行匹配并被替换,并且我敢肯定你不想删除整行。只匹配你想要替换的东西。 – TLP 2014-09-10 11:46:21