動画ファイル名により振り分け
こんなかんじで振り分けた
#京 #!/bin/perl use strict; use warnings; use File::Path; use Cwd 'getcwd'; use Fcntl; use File::Find; use File::Copy; my $dir = getcwd; my %matchs = ( # match => dst floder 'たまこまーけっと' => '', 'AKB0048 next stage' => 'AKB0048 next stage' , 'AKB0048' => 'AKB0048 next stage' , 'ガールズ&パンツァー' => '', 'ガールズ&パンツァー' => 'ガールズ&パンツァー' , 'ささみさん@がんばらない' => '', 'ジョジョの奇妙な冒険' => '', 'ひだまりスケッチ×ハニカム' => '', 'まおゆう魔王勇者' => '', 'みなみけ' => 'みなみけ ただいま' , '琴浦さん' => '', '戦勇。' => '', 'BLACK LAGOON' => '', 'AMNESIA' => '', 'GJ部' => '', '問題児たちが異世界から来るそうですよ?' => '', 'さくら荘のペットな彼女' => '', 'あいまいみー' => '', 'ヤマノススメ' => '', 'ToLOVEる-とらぶる-ダークネス' => '', 'キューティクル探偵因幡' => '', '閃乱カグラ' => '', 'リトルバスターズ!' => '', '戦国コレクション' => '', '絶園のテンペスト' => '', '戦勇。' => '', 'はいたい七葉' => '', 'ラブライブ!' => '', 'アイカツ!' => '', 'BLACK LAGOON' => '', 'ビビッドレッド・オぺレーション' => '', '俺の彼女と幼なじみが修羅場すぎる' => '', '僕は友達が少ないNEXT' => '', 'D.C.III〜ダ・カーポIII〜' => '', 'D.C.Ⅲ〜ダ・カーダⅢ〜' => 'D.C.III〜ダ・カーポIII〜', 'D.C.III〜ダ・カーポIII〜' => 'D.C.III〜ダ・カーポIII〜', 'D.C.Ⅲ〜ダ・カーポⅢ〜' => 'D.C.III〜ダ・カーポIII〜', 'D.C.Ⅲ〜ダ・カーダⅢ〜' => 'D.C.III〜ダ・カーポIII〜', 'D.C.III〜ダ・カーダIII〜' => 'D.C.III〜ダ・カーポIII〜', 'D.C.Ⅲ〜ダ・カーダⅢ〜' => 'D.C.III〜ダ・カーポIII〜', ); find( { wanted => \&d, nochdir => 1 }, '.' ); sub d{ return if($_ eq '.'); return if($_ eq '..'); my $file = $_; my $tmp = $_; return unless(-f); $tmp =~ s/_\d\....$//; $tmp =~ s/\....$//; $tmp =~ s/\#\d+//; $tmp =~ s/\(\d+\)//; $tmp =~ s/第\d+話//; print "$file\n"; my %pat = (); my @pat = (); push @pat , split( / /, $tmp); push @pat , split( / /, $tmp ); push @pat , split( /\x81\x75/, $tmp ); push @pat , split( /_/, $tmp ); push @pat , split( /\(/, $tmp ); grep { s/ $//; } @pat; grep { s/ +$//; } @pat; push @pat , split( / /, $tmp); push @pat , split( / /, $tmp ); push @pat , split( /\x81\x75/, $tmp ); push @pat , split( /_/, $tmp ); push @pat , split( /\(/, $tmp ); $pat{$_} = 1 foreach(@pat); delete $pat{''}; print " - 「$_」\n" foreach(sort keys %pat); foreach my $match(keys %matchs) { foreach(keys %pat) { if( $_ eq $match) { $matchs{$match} = $match if( $matchs{$match} eq '' ) ; my $dst = $dir . '\\' . $matchs{$match}; print " > $dst\n"; mkdir $dst; move $file, $dst . '\\' . $file || print $!; } } } } print "\n";