Ich habe das folgende Skript, das eine Eingabedatei einnimmt, Ausgabedatei und ersetzt die Zeichenfolge in der Eingabedatei mit einer anderen Zeichenfolge und schreibt die Ausgabedatei aus.Wie kann ich Bulk suchen und durch Perl ersetzen?
Ich mag das Skript ändern, durch ein Verzeichnis von Dateien dh statt Aufforderung zur Eingabe und Ausgabe-Dateien zu durchlaufen, wird das Skript als Argument einen Verzeichnispfad wie C nehmen soll: \ temp \ allFilesTobeReplaced \ und Suche für eine Zeichenfolge x und ersetzen Sie sie durch y für alle Dateien unter diesem Verzeichnispfad und schreiben Sie die gleichen Dateien.
Wie mache ich das?
Danke.
$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);