Wie kann ich tun, bulk-suchen und ersetzen mit Perl?

Habe ich das folgende Skript nimmt in einer Eingabe-Datei Ausgabe-Datei und
ersetzt die Zeichenfolge in der Eingabe-Datei durch eine andere Zeichenfolge und schreibt
die Ausgabe-Datei.

Möchte ich das Skript ändern, um die traverse durch ein Verzeichnis der Dateien
d.h. statt der Aufforderung für die Eingabe und Ausgabe von Dateien, das Skript nehmen sollte
als argument einen Pfad wie C:\temp\allFilesTobeReplaced\ und
Suche für einen string x und Ersetze es mit y für alle Dateien, die unter
Verzeichnis-Pfad und schreiben Sie die gleichen Dateien.

Wie mache ich das?

Dank.

$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);

InformationsquelleAutor shubster | 2009-05-27

Schreibe einen Kommentar