Benennen Sie Dateien von in1.jpg, in2.jpg, in3.jpg usw. in out0001.jpg, out0002.jpg, out0003.jpg usw. mit dem Perl-Skript „rename“ um.

Benennen Sie Dateien von in1.jpg, in2.jpg, in3.jpg usw. in out0001.jpg, out0002.jpg, out0003.jpg usw. mit dem Perl-Skript „rename“ um.

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 lnin 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
        }
    }

verwandte Informationen