0

ローカル ハードディスクにたくさんのフォルダがあります。以下はフォルダ名です:

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】。

私の論理は次のとおりです。

  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 - Subs - [xDM]」、(2007) など

この問題を解決するための別の方法を誰かが教えてくれるなら、それもまた問題ありません。

ありがとう

ありがとう

4

1 に答える 1

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 K@rtik [ExD Exclusive] ->
Bcd[2011]720pBRRipx264[DualAudio][HindiEnglish]byK@rtik[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
于 2012-09-21T06:58:27.497 に答える