完全にテストされていない:)ファイル名の最初の文字に基づいてソートするperlスクリプト
use File::Copy;
# base directory of where we want to copy files
my $destdir = "destdir";
opendir("dir_to_sort", DH);
my @files = readdir(DH);
closedir(DH);
foreach my $file (@files)
{
# skip . and ..
next if $file =~ /^\.$/;
next if $file =~ /^\.\.$/;
# This is where you'd figure out where you want to put the file
# in this example we're just looking at the first char.
# so a file named "HelloWorld" would be copied to $destdir/H/HelloWorld
# pull the first char
$file =~ /^(.).*/;
my $target_dir = $1;
mkdir("$destdir/$target_dir") unless -d "$destdir/$target_dir"
# you could use move instead of copy here
copy($file, "$destdir/$target_dir/$file");
}
本当に、これはまったくテストされていません。これを実行してすべてを失っても、警告しなかったと文句を言わないでください。:)