ローカル ハードディスクにたくさんのフォルダがあります。以下はフォルダ名です:
3 ABC
abc movie (2002) HDTVRip 576p Hindi Eng BHATTI87
Bcd [2011].720p.BRRip.x264.[Dual Audio] [Hindi+English].by K@rtik [ExD Exclusive]
def (2007)
Gaf-DVDRip-AVI
Gadks Of Wc (2012) - DVDRip - 1CD - XviD - Subs - [xDM]
Kah - DVDScr - XviD - 1CDRip - [DDR]
kaslf.kasl .Ljasj [2007] - x264 - AAC - 1 CD DVDRip - ESubs - MDG
私はすべての名前にいくつかの類似性を持たせたいと思っています。たとえば、各文字列の間にスペースが 1 つある必要があります。つまり、"Gadks Of Wc (2012) - DVDRip - 1CD - XviD - Subs - [xDM]" は
Gadks Of Wc (2012) DVDRip 1CD XviD Subsである必要があります。 【xDM】。
私の論理は次のとおりです。
- 各フォルダ名の読み取り
- すべてのフォルダ名をリストに格納
- 名前ごとに分割や結合などの操作を行う
以下は私のスクリプトです:
#!/usr/bin/perl -w
use strict;
my $dir_name = "E:/movie";
opendir READ, $dir_name
or die"Can not found it $!";
my @name = readdir(READ);
my (@split_name, $update_movie_name, $fix_movie_name);
foreach my $name (@name) {
@split_name = split /[\s+\/.\-]/,$name;
$update_movie_name = movie_fun(@split_name);
}
sub movie_fun {
foreach my $movie (@split_name) {
$fix_movie_name = join("",$movie);
}
return ($fix_movie_name);
}
このスクリプトでは、フォルダー名の最後の部分のみを取得しています。どこが間違っているのかわかりません。この問題から私を助けてください。名前から不要な部分を削除する次のステップに進むことができるように、「(2012) - DVDRip - 1CD - XviD - Subs - [xDM]」、(2007) など
この問題を解決するための別の方法を誰かが教えてくれるなら、それもまた問題ありません。
ありがとう
ありがとう