Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Sergey                               2:5020/400     13 Mar 2007  16:13:09
 To : Artem Chuprina
 Subject : Re: Про копирования каталогов...
 -------------------------------------------------------------------------------- 
 
 Привет...
 
 "Artem Chuprina" <ran+news@ran.pp.ru> сообщил/сообщила в новостях следующее: 
 news:11969810@wizzle.ran.pp.ru...
 
 > Сергей -> Sergey  @ Fri, 9 Mar 2007 07:53:16 +0000 (UTC):
 >
 > С> Привет...
 >
 > С> Ха прикольно это работает... :)))
 > С> --------------------
 > С> #!/usr/bin/perl -w
 > С> $ETC = "/usr/local/etc/dir"
 > С> $SERVER=split(/,/, $ARGV[0]);
 > С> $SERVER =~ tr/a-z/A-Z/;
 > С> $fromdir="/tmp/fromdir";
 > С> $outdir="/tmp/outdir";
 > С> $CP="bin/cp";
 >
 > С> sub COPY_DIR
 > С> {
 > С> my (@strs,$str,@dirs,$dir);
 >
 > С> if ( -e $ETC/$SERVER\.excl)
 > С> {
 > С> open (EXC, "$ETC/$SERVER\.excl);
 > С> }
 > С> else
 > С> {
 > С> open (EXC, "$ETC/default\.excl");
 > С> }
 > С> while ( $exc = <EXC> )
 > С> {
 > С> chomp $exc;
 > С> opendir (D, $fromdir) or warn "Cannot open
 > С> $fromdir: !" and next;
 > С> @dirs=grep {!(/^\./) && "$fromdir/$_"} readdir D;
 > С> rewinddir D;
 > С> foreach $dir (@dirs)
 > С> {
 > С> if ( "$dir" ne "$exc" )
 > С> {
 > С> @strs=`($CP -pR -- "$fromdir/$dir" "$outdir") &2>1`;
 > С> foreach $str (@strs)
 > С> {
 > С> &Log(2,"$str");
 > С> }
 > С> closedir D;
 > С> }
 > С> }
 > С> close EXC;
 > С> }
 > С> ------------
 > С> Короче это выглядит так... В файле $exc 6 записей
 > С> и при выполнении скрипта происходит 6 раз
 
 <skip>
 
 >
 > Ми же вас придуприждалы...  У тебя цикл по исключениям - внешний по
 > отношению к циклу по директориям.  А надо, ну в худшем случае наоборот.
 > В правильном еще внутри должен быть не цикл, а проверка на вхождение в
 > хэш, но это когда программировать научишься.  Сперва сделай, чтоб
 > работало.
 
 Правда ваша :) Вот сделал как.... Может посоветуете покрасивее, мож работать 
 быстрее будет... да и вааще покажите как гуру этот вариант бы написали??? 
 Вариант-то класический, а в книжках как-то коряво все... :)
 -----------------
 #!/usr/bin/perl -w
 $ETC = "/usr/local/etc/dir"
 $SERVER=split(/,/, $ARGV[0]);
 $SERVER =~ tr/a-z/A-Z/;
 $fromdir="/tmp/fromdir";
 $outdir="/tmp/outdir";
 $CP="bin/cp";
 
 sub COPY_DIR
 {
 my (@strs,$str,@dirs,$dir,@dirsnew);
 
 if ( -e $ETC/$SERVER\.excl)
 {
 open (EXC, "$ETC/$SERVER\.excl);
 }
 else
 {
 open (EXC, "$ETC/default\.excl");
 }
 @exc = <EXC>;
 chomp (@exc);
 close EXC;
 opendir (D, $fromdir) or warn "Cannot open
 $fromdir: !" and next;
 @dirs=grep {!(/^\./) && "$fromdir/$_"} readdir D;
 rewinddir D;
 closedir D;
 @dirhash{@exc}=();
 foreach $dir (@dirs) {
     push (@dirsnew, $dir) unless exists $dirhash{$dir};
 }
 foreach $dir (@dirsnew) {
 @strs=`($CP -pR -- "$fromdir/$dir" "$outdir") &2>1`;
 foreach $str (@strs)
 {
 &Log(2,"$str");
 }
 }
 }
 
 > Да, в команде копирования в "$outdir" перед закрывающей кавычкой добавь
 > / - может пригодиться...
 
 Да пригодилось... сенкс...
 --------
 
 > Artem Chuprina
 > RFC2822: <ran{}ran.pp.ru> Jabber: ran@jabber.ran.pp.ru
 
 -----------------
 С уважением Сергей 
 -- 
 Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
 --- ifmail v.2.15dev5.3
  * Origin: SICE (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Про копирования каталогов...   Sergey   07 Mar 2007 09:16:01 
 Re: Про копирования каталогов...   Artem Chuprina   07 Mar 2007 17:31:54 
 Re: Про копирования каталогов...   ‘ҐаЈҐ©   09 Mar 2007 09:32:31 
 Re: Про копирования каталогов...   ‘ҐаЈҐ©   09 Mar 2007 11:53:16 
 Re: Про копирования каталогов...   Artem Chuprina   11 Mar 2007 02:31:15 
 Re: Про копирования каталогов...   Sergey   13 Mar 2007 16:13:09 
 Re: Про копирования каталогов...   Serge Chervjakov   13 Mar 2007 21:16:16 
 Re: Про копирования каталогов...   Sergey   14 Mar 2007 15:41:55 
 Re: Про копирования каталогов...   Artem Chuprina   14 Mar 2007 18:03:48 
 Re: Про копирования каталогов...   Serge Chervjakov   14 Mar 2007 19:11:24 
 Re: Про копирования каталогов...   Artem Chuprina   14 Mar 2007 21:28:18 
 Про копирования каталогов...   Alexey Zhidkov   24 Mar 2007 21:07:12 
 Moderatorial [+] (was: Про копирования каталогов...)   Moderator of RU.PERL   24 Mar 2007 17:01:51 
 Re: Про копирования каталогов...   ‘ҐаЈҐ©   15 Mar 2007 11:07:14 
 Re: Про копирования каталогов...   Artem Chuprina   15 Mar 2007 13:23:38 
 Re: Про копирования каталогов...   Sergey   19 Mar 2007 12:02:58 
 Re: Про копирования каталогов...   Artem Chuprina   19 Mar 2007 14:06:31 
 Про копирования каталогов...   Alexey Zhidkov   24 Mar 2007 17:42:29 
Архивное /ru.perl/64884ad6ce11.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional