Renomeia vários arquivos removendo os últimos caracteres e renumerando

0

Eu tenho um diretório de fotos com centenas de arquivos nomeados no formato:

2013-08-02 19.21.27.jpg

Eu desejo manter os 10 primeiros caracteres (data) e acrescentar "-001", etc., consecutivos para cada data.

A saída seria:

2013-08-02-001.jpg
2013-08-02-002.jpg
2013-08-03-001.jpg

etc.

Eu planejo então redimensionar o jpg usando algo como:

for file in *.jpg; do convert $file -resize 900x900\> 900x900-$file; done
    
por user52478 16.11.2013 / 12:44

1 resposta

1

A maneira mais fácil de fazer isso provavelmente seria usar os hashes do Perl:

perl -e '
    for (<*.jpg>){
        $date = substr($_,0,10);
        $counts{$date}++;
        rename $_ => "$date-".sprintf "%03d",$counts{$date}.".jpg";
    }
'

Cuidado, porém, esse código não foi testado. Tente em arquivos falsos primeiro.

    
por 16.11.2013 / 13:31