Мне нужно очистить кучу имен файлов папок. Возможно, даже названия файлов. В настоящее время я использовал этот скрипт на 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 сегодня как один из моих первых языков программирования, поэтому я относительно новичок в этом языке.