複数のファイルの名前を変更し、最後の文字を削除して番号を付け直します。

複数のファイルの名前を変更し、最後の文字を削除して番号を付け直します。

次の形式で名前付き数百のファイルを含むフォトディレクトリがあります。

2013-08-02 19.21.27.jpg

最初の10文字(日付)を維持し、「-001」などを追加し、各日付が連続するようにしたいと思います。

出力は次のとおりです。

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

など。

その後、以下を使用してjpgのサイズを変更する予定です。

for file in *.jpg; do convert $file -resize 900x900\> 900x900-$file; done

ベストアンサー1

最も簡単な方法は、おそらくPerlのハッシュを使用することです。

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

ただし、このコードはテストされていないことに注意してください。まず、ダミーファイルで試してみてください。

おすすめ記事