ฉันต้องล้างชื่อไฟล์โฟลเดอร์หลาย ๆ ไฟล์ อาจเป็นไปได้ว่าชื่อไฟล์เช่นกัน ฉันกำลังใช้สคริปต์ Perl นี้เพื่อทำเช่นนั้น แต่ฉันพบปัญหาบางอย่าง
- หากชื่อไฟล์มีวงเล็บอยู่แล้วในรอบปีก็จะเพิ่มอีกชุดหนึ่ง
ฉันต้องการใช้ไฟล์ข้อความเพื่อลบ "ลายเซ็น" ทั่วไปในชื่อด้วยเช่นกัน
This.Movie.Blah.(2012) [1080p] MP4
.ขณะนี้สคริปต์ที่ฉันได้แทนที่
.
ด้วยช่องว่างตามที่ตั้งใจไว้และเพิ่ม(xxxx)
รอบปีThis Movie Blah ((2012)) [1080p] MP4
ใช้สคริปต์ผลจะ
นอกจากนี้ฉันต้องการลบ "ลายเซ็น" ที่ตรงกับค่าของไฟล์ข้อความ (เรียงกัน, ไม่ใช่ CSV) จากชื่อไฟล์ดังนั้นThis.Movie.Blah.(2012) [1080p] MP4
จะกลับมาThis Movie Blah (2012)
use warnings;
use strict;
use File::Copy;
my $oldname;
opendir(my $d, ".") or die $!;
while(readdir $d) {
if (-d $_ and $_ ne "." and $_ ne "..")
{
$oldname = $_;
$_ =~ s/\./ /g;
$_ =~ s/(\d{4})/($1)/g;
move($oldname,$_);
}
}
closedir $d;
ฉันเพิ่งเริ่มพยายามเรียนรู้ Perl วันนี้เป็นหนึ่งในภาษาการเขียนโปรแกรมแรกของฉันดังนั้นฉันค่อนข้างใหม่กับภาษานี้