URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 881
[ Назад ]

Исходное сообщение
"Ребята, помогите с перл скриптом."

Отправлено gexagon , 06-Авг-02 16:11 
Ребята, подскажите как в перловом скрипе осуществить копирование файлов по маске, например:
Есть файлы в каталоге:
/files/
        2002-8-6 12-46-02-42.jpg  # дата и время скриншота
        2002-8-6 12-46-03-42.jpg
        2002-8-7 17-05-02-33.jpg
        2002-8-7 17-05-03-33.jpg
        2002-8-8 23-49-21-42.jpg    
Нужно раскидать файлики по каталогам, чтобы в один каталог попали файлы с одним месяцем и числом, в другой каталог с другой датой и т.д.
Как на перле такое сделать? Можно и на баше, если кто знает?
Огромное спасибо.

Содержание

Сообщения в этом обсуждении
"RE: Ребята, помогите с перл скриптом."
Отправлено uldus , 06-Авг-02 16:42 
>Ребята, подскажите как в перловом скрипе осуществить копирование файлов по маске, например:

perldoc Time::Local

perldoc -f stat
perldoc -f opendir
perldoc -f readdir
perldoc -f closedir
perldoc -f rename

Этого вполне достаточно.


"RE: Ребята, помогите с перл скриптом."
Отправлено sector119 , 15-Авг-02 17:39 
чет я нибуя не понял! как у тя каталоги должны называться и какие файлы туды должны попасть! сделай пример! мол файлы с таким названием в каталог с таким названием, файлы с другим названием, в каталог с другим названием!

может я и угадал :)

map{print;}glob '*.txt';
map{че делать с твоими файлами}glob 'маска по которой цеплять файлы';

или

for (<*.txt>)
{
print;
}


"RE: Ребята, помогите с перл скриптом."
Отправлено pth , 20-Авг-02 01:54 
Примерно так?

my %h = ();

for (<*.jpg>)
{
    /^(\d+-\d+-d+)/ && push( @{ $h{$1} }, $_) };
}

for my $dir (keys %h)
{
    mkdir $dir;
    for ( @{ $h{$dir} } )
    {
        system("cp $_ $dir/$_");
    }
}


"RE: Ребята, помогите с перл скриптом."
Отправлено pth , 20-Авг-02 01:56 
Б...ь очепятка, должно быть так:

/^(\d+-\d+-d+)/ && push( @{ $h{$1} }, $_);