Giriş dosyasında, çıktı dosyasında ve giriş dosyasındaki dizenin yerine başka bir dizeyle yer verilen ve çıkış dosyasına yazılan aşağıdaki komut dosyası var.Toplu arama ve Perl ile nasıl değiştirebilirim?
ben, script örneğin, C argüman olarak bir dizin yolu almalı dosyaları yani yerine giriş ve çıkış dosyaları için istemek bir dizine boyunca hareketlerini senaryoyu değiştirmek istiyorum: \ temp \ allFilesTobeReplaced \ ve arama Bir dize x için ve bu dizin yolu altındaki tüm dosyalar için y ile değiştirin ve aynı dosyaları yazın.
Bunu nasıl yaparım?
Teşekkürler.
$file=$ARGV[0];
open(INFO,$file);
@lines=<INFO>;
print @lines;
open(INFO,">c:/filelist.txt");
foreach $file (@lines){
#print "$file\n";
print INFO "$file";
}
#print "Input file name: ";
#chomp($infilename = <STDIN>);
if ($ARGV[0]){
$file= $ARGV[0]
}
print "Output file name: ";
chomp($outfilename = <STDIN>);
print "Search string: ";
chomp($search = <STDIN>);
print "Replacement string: ";
chomp($replace = <STDIN>);
open(INFO,$file);
@lines=<INFO>;
open(OUT,">$outfilename") || die "cannot create $outfilename: $!";
foreach $file (@lines){
# read a line from file IN into $_
s/$search/$replace/g; # change the lines
print OUT $_; # print that line to file OUT
}
close(IN);
close(OUT);