Renomeie os arquivos de in1.jpg, in2.jpg, in3.jpg, etc para out0001.jpg, out0002.jpg, out0003.jpg etc usando o script perl 'rename'

0

Gostaria de renomear um número grande de arquivos com os nomes in1.jpg, in2.jpg, in3.jpg, etc para out0001.jpg, out0002.jpg, out0003.jpg, etc. Agradecido se alguém sugerisse uma solução usando o script perl rename (ou prename ) que vem com a distribuição perl.

    
por stl 07.12.2013 / 10:01

1 resposta

0

Apenas por diversão e de graça ...

Eu usaria links para manter os nomes originais, mas você pode alterar o comando de link ( ln ) para um comando de movimento ( mv ) se desejar (adicionado como um comentário):

#!/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
        }
    }
    
por 09.01.2014 / 23:04