Perlで、フォルダ内のファイル名を一括変更するには

例えば、
log20080308.txt
   ↓
log-2008-03-08.txt
のように、 フォルダ内のファイル名を全部いっぺんに変更したいとき。

for (glob("log*.txt")) {
	my $old_name = $_;
	s/(^.+)([0-9][0-9][0-9][0-9])([0-9][0-9])([0-9][0-9]).txt/$1-$2-$3-$4.txt/;
	my $new_name = $_;
	rename $old_name, $new_name;
}

参考:Perlでファイル名を変更(リネーム)するにはrename
カテゴリ: