2012-09-21 108 views
0

我在本地硬盘中有一堆文件夹。以下是文件夹名称:如何修改文件夹名称

3 ABC 
abc movie (2002) HDTVRip 576p Hindi Eng BHATTI87 
Bcd [2011].720p.BRRip.x264.[Dual Audio] [Hindi+English].by [email protected] [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 

我希望所有的名称有一定的相似性就像每个字符串之间应该有一个空间,即“Gadks由WC(2012) - 的DVDRip - 1CD - XviD格式 - 替补 - [xDM标准] “应该是
Gadks Of Wc(2012)DVDRip 1CD XviD Subs [xDM]。

我的逻辑是:

  1. 阅读每个文件夹名称
  2. 存放在列表中的所有文件夹名称
  3. 不喜欢拆分操作,并加入每名

下面是我的脚本:

#!/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 - 潜在 - [xDM]”,(2007)等

如果任何机构可以给我任何其他方式来解决这个问题,那么也将是罚款。

感谢

感谢

回答

0
#!/usr/bin/perl -w 
use strict; 

my $dir_name = "/movie"; 
opendir READ, $dir_name 
    or die"Can not found it $!"; 

my @name = readdir(READ); 

FOLDER: 
foreach my $name (@name) { 

    # process only directories (skip if folder name . or ..) 
    next FOLDER if ((not -d $dir_name.$name) || ($name =~ m{^\.+$})); 

    my @split_name = split /[\s+\/.\-]/, $name; 
    my $update_name = movie_fun(@split_name); 

    printf "%s -> %s\n", $name, $update_name; 
} 

sub movie_fun { 
    my @split_name = @_; 

    return join '', @split_name; 
} 

输出

3 ABC -> 
3ABC 

abc movie (2002) HDTVRip 576p Hindi Eng BHATTI87 -> 
abcmovie(2002)HDTVRip576pHindiEngBHATTI87 

Bcd [2011].720p.BRRip.x264.[Dual Audio] [Hindi+English].by [email protected] [ExD Exclusive] -> 
Bcd[2011]720pBRRipx264[DualAudio][HindiEnglish][email protected][ExDExclusive] 

def (2007) -> 
def(2007) 

Gaf-DVDRip-AVI -> 
GafDVDRipAVI 

Gadks Of Wc (2012) - DVDRip - 1CD - XviD - Subs - [xDM] -> 
GadksOfWc(2012)DVDRip1CDXviDSubs[xDM] 

Kah - DVDScr - XviD - 1CDRip - [DDR] -> 
KahDVDScrXviD1CDRip[DDR] 

kaslf.kasl .Ljasj [2007] - x264 - AAC - 1 CD DVDRip - ESubs - MDG -> 
kaslfkaslLjasj[2007]x264AAC1CDDVDRipESubsMDG 
相关问题