| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Помогите дописать скрипт-поиск файлов и запись в.. |
| Автор: tedy1 16.7.2010, 12:20 |
| Сделал скрипт по поиску файлов в одной папке и переносе файлов с определенным расширением в другую папку. А дальше в тупике (постигаю по тихонечку Perl). Подскажите что надо добавить, чтобы скрипт найдя файл с определенным расширением к примеру txt. Файлы green.txt перенес в папку green и hello.txt перенес в папку hello и т.д. Спасибо. Вот мой скрипт: #!/usr/bin/perl use File::Copy; $path_kuda="/1/1"; $path_otkuda="/1/4"; $txt=txt; $bat=bat; { opendir(MDIR,"$path_otkuda") or die "Error.\n"; @files=readdir(MDIR); closedir(MDIR); if (scalar(@files)==0) { die "No files\n"; } for ($j=0;$j <= scalar(@files);$j++) { if (($files[$j] =~m|.*$txt|i) or ($files[$j] =~m|.*$bat|i)) { copy("$path_otkuda/$files[$j]","$path_kuda"); }}} |
| Автор: arto 16.7.2010, 12:35 |
| # perl -MFile::Copy -e 'foreach (glob "$ARGV[0]/*.{bat,txt}") { copy $_,$ARGV[1] }' /1/4 /1/1 |
| Автор: tedy1 16.7.2010, 13:07 |
| arto, так он просто скопирует в папку /1/1. А мне надо чтобы исходя из названия файла green.txt скопировал этот файл в папку green, если файл с названием hello.txt в папку hello, как файл называется в такую папку его и помешать.... |
| Автор: arto 16.7.2010, 13:19 |
| perl -MFile::Copy -e 'foreach (glob "$ARGV[0]/*.{bat,txt}") { copy $_,$ARGV[1] . "/" . ( split "[/.]" )[-2] }' /1/4 /1/1 |
| Автор: tedy1 16.7.2010, 13:28 |
| arto, Спасибо большое, а как сделать, чтобы green.txt он переписывал в папку в green, но название файла изменял на txt1? |
| Автор: arto 16.7.2010, 13:42 |
| 50€/hour |