
Ich möchte eine große Anzahl Dateien mit den Namen in1.jpg, in2.jpg, in3.jpg usw. in out0001.jpg, out0002.jpg, out0003.jpg usw. umbenennen. Ich wäre dankbar, wenn jemand eine Lösung unter Verwendung des Perl-Skripts rename
(oder prename
) vorschlagen würde, das mit der Perl-Distribution mitgeliefert wird.
Antwort1
Nur zum Spaß und kostenlos...
Ich würde Links verwenden, um die ursprünglichen Namen beizubehalten, aber Sie können den Link-Befehl ( ) bei Bedarf ln
in einen Verschiebebefehl ( ) ändern (als Kommentar hinzugefügt):mv
#!/usr/bin/perl
# Creates link files with ascending sequence numbers ($USE_SEQ=1) or original numbers
# ($USE_SEQ=0):
$USE_SEQ = 1;
unless(opendir(DIRECTORY,".")) { die "Unable to open current directory.\n"; }
@files = readdir(DIRECTORY);
closedir(DIRECTORY);
$seqnum = 1;
foreach $file (@files) {
if ($file =~ /\.jpg$/i) {
($number) = ($file =~ /(\d+).jpg/i);
$number = $seqnum++ if $USE_SEQ;
$padded_number = sprintf "%05d", $number;
$padded_name = "out" . $padded_number . ".jpg";
`ln -s "$file" $padded_name`;
# `mv "$file" $padded_name`; # untested
}
}