2015年2月8日日曜日

perl ファイルに連番をつける




解凍してみたら文字化けしていた、もしくは、ファイル名が長すぎるときなどに使います。



#!/usr/bin/perl
use File::Copy;

$dir = shift @ARGV;
opendir(DIR,"$dir");
#mkdir("renamed",508);
@dirc = readdir(DIR);

$jpg_no = 0;
$png_no = 0;
foreach $filename (@dirc){
if($filename =~ /\.jpg$/ || $filename =~ /\.jepg$/){
$rnmfile="$jpg_no";
if(    $jpg_no < 10   ){  $rnmfile="000$jpg_no"; }
elsif( $jpg_no < 100  ){  $rnmfile="00$jpg_no"; }
elsif( $jpg_no < 1000 ){  $rnmfile="0$jpg_no"; }
print "./$dir/$filename, ./$dir/$rnmfile.jpeg\n";
copy "./$dir/$filename", "./$dir/$rnmfile.jpeg";
print "cp $filename $rnmfile.jpeg\n";
$jpg_no = $jpg_no +1;
}
if($filename =~ /\.png$/){
$rnmfile="$png_no";
if(    $png_no < 10   ){  $rnmfile="000$png_no"; }
elsif( $png_no < 100  ){  $rnmfile="00$png_no"; }
elsif( $png_no < 1000 ){  $rnmfile="0$png_no"; }
print "./$dir/$filename, ./$dir/$rnmfile.png\n";
copy "./$dir/$filename", "./$dir/$rnmfile.png";
print "cp $filename $rnmfile.png\n";
$png_no = $png_no +1;
}
}

0 件のコメント:

コメントを投稿