Да, Perl может сделать это.Вот что-то довольно простое:
#! /usr/bin/env perl
use strict;
use warnings;
use File::Find;
my $directory = "."; #Or whatever directory tree you're looking for...
find (\&wanted, $directory);
sub wanted {
print "Full File Name = <$File::Find::name>\n";
print "Directory Name = <$File::Find::dir>\n";
print "Basename = <$_\n>";
# Using tests to see various things about the file
if (-f $File::Find::name) {
print "File <$File::Find::name> is a file\n";
}
if (-d $File::Find::name) {
print "Directory <$File::Find::name> is a directory\n";
}
# Using regular expressions on the file name
if ($File::Find::name =~ /beans/) { #Using Regular expressions on file names
print "The file <$File::Find::name> contains the string <beans>\n";
}
}
Команда find берет каталог и вызывает подпрограмму wanted
для каждого файла и каталога во всем дереве каталогов.Эта подпрограмма должна выяснить, что делать с этим файлом.
Как видите, вы можете выполнять различные тесты для файла и использовать регулярные выражения для анализа имени файла.Вы также можете переместить, переименовать или удалить файл в соответствии с вашими пожеланиями.
Perl будет делать именно то, что вы хотите.Теперь все, что вам нужно сделать, это выучить это.