今日のPerlプログラム(rename.pl)
指定ディレクトリ以下のファイルの拡張子を変換する。
"rename"ってコマンドで同じことができるらしい。
使い方がわからなかったのでPerlで書いてみた。
#!/usr/local/bin/perl $root = $ARGV[0]; $before = "html"; $after = "shtml"; &rename_file($root); exit; sub rename_file { my ($c_dir) = $_[0]; my ($work_file); chdir($c_dir); opendir(DIR,"."); my (@file_info) = readdir(DIR); closedir(DIR); print "CurrentDirInfo: @file_info\n"; foreach $work_file (@file_info) { if($work_file eq '.' || $work_file eq '..') { next; } if(-d $work_file) { print "In [$work_file] Directory\n"; &rename_file($work_file); print "Out [$work_file] Directory\n"; } if(-f $work_file && $work_file =~ /(.*)\.$before/) { rename("$work_file","$1.$after"); print "before = $work_file >> after = $1.$after\n"; } } chdir('..'); }
使ってみようって方は自己責任でお願いします。いないか・・・