in reply to Re^3: directories and sub directories and copying or moving hundereds or thousands of files :)
in thread directories and sub directories and copying or moving hundereds or thousands of files :)

hmm. well if i am going to copy a file from dev_flash (folder) i need to read each file in the temp folder, then compare the file i get from searching directories against the filename in the files of the temp folder, then if it matches, copy it to destination.
foreach my $element($array){ open my $tempfile, '<', $element; foreach $line(<$tempfile>){ if ($line =~ $file_to_copy){ copy ($file_to_copy, "copied_files/$element) } else{ print ''; } }
i have no idea if that would even work :D
To me, that is 1 to many of nested foreach loops, but it does look like it would work. ive had bad exeriences with foreach loops and subs :l
  • Comment on Re^4: directories and sub directories and copying or moving hundereds or thousands of files :)
  • Download Code

Replies are listed 'Best First'.
Re^5: directories and sub directories and copying or moving hundereds or thousands of files :)
by Anonymous Monk on Oct 04, 2014 at 07:43 UTC
      i may have to sleep on this one... haha. i spend a good deal of thinking exactly how i was going to even accomplish this task. let me wake up tomorrow with a fresh pot of coffee and see what i can come up with. cz this is my new hobby. i like programming, i just wish i knew how to do it /better/

        i may have to sleep on this one... haha. ...

        Cheers

        #!/usr/bin/perl -- use strict; use warnings; use File::Slurp; use Data::Dump qw/ dd /; my @dev_flash000 = (); my @dev_flash001 = (); my @dev_flash002 = (); my @dev_flash003 = (); my @dev_flash004 = (); my @dev_flash005 = (); my @dev_flash006 = (); my @dev_flash007 = (); my @dev_flash008 = (); my @dev_flash009 = (); my @dev_flash010 = (); my @dev_flash011 = (); my @dev_flash012 = (); my @dev_flash013 = (); my @dev_flash014 = (); my @dev_flash015 = (); my @dev_flash016 = (); my @dev_flash017 = (); my @dev_flash018 = (); my @dev_flash019 = (); my @dev_flash020 = (); my @dev_flash021 = (); my @dev_flash022 = (); my @dev_flash023 = (); my @dev_flash024 = (); my @dev_flash025 = (); my @dev_flash026 = (); my @dev_flash027 = (); my %damndevs = ( dev_flash000 => \@dev_flash000, dev_flash001 => \@dev_flash001, dev_flash002 => \@dev_flash002, dev_flash003 => \@dev_flash003, dev_flash004 => \@dev_flash004, dev_flash005 => \@dev_flash005, dev_flash006 => \@dev_flash006, dev_flash007 => \@dev_flash007, dev_flash008 => \@dev_flash008, dev_flash009 => \@dev_flash009, dev_flash010 => \@dev_flash010, dev_flash011 => \@dev_flash011, dev_flash012 => \@dev_flash012, dev_flash013 => \@dev_flash013, dev_flash014 => \@dev_flash014, dev_flash015 => \@dev_flash015, dev_flash016 => \@dev_flash016, dev_flash017 => \@dev_flash017, dev_flash018 => \@dev_flash018, dev_flash019 => \@dev_flash019, dev_flash020 => \@dev_flash020, dev_flash021 => \@dev_flash021, dev_flash022 => \@dev_flash022, dev_flash023 => \@dev_flash023, dev_flash024 => \@dev_flash024, dev_flash025 => \@dev_flash025, dev_flash026 => \@dev_flash026, dev_flash027 => \@dev_flash027, ); extract_files('nowhere','nohow'); ## my test that my version works sub extract_files { #~ my @devflash = ( map { 'temp/dev_flash'.$_ } '000'..'027' ); my @devflash = ( 'temp/dev_flash000', 'temp/dev_flash001', 'temp/dev_flash002', 'temp/dev_flash003', 'temp/dev_flash004', 'temp/dev_flash005', 'temp/dev_flash006', 'temp/dev_flash007', 'temp/dev_flash008', 'temp/dev_flash009', 'temp/dev_flash010', 'temp/dev_flash011', 'temp/dev_flash012', 'temp/dev_flash013', 'temp/dev_flash014', 'temp/dev_flash015', 'temp/dev_flash016', 'temp/dev_flash017', 'temp/dev_flash018', 'temp/dev_flash019', 'temp/dev_flash020', 'temp/dev_flash021', 'temp/dev_flash022', 'temp/dev_flash023', 'temp/dev_flash024', 'temp/dev_flash025', 'temp/dev_flash026', 'temp/dev_flash027', ); my $des = ''; my ( $dir, $file ) = @_; for my $devfile ( @devflash ) { #~ my( $devdigit ) = $devfile =~ m{/(dev[^/]+)$}; #~ my $devdigit = path( $devfile )->basename; #~ my( $devdigit ) = $devfile =~ m{/(dev_flash\d+)$}s; my( $devdigit ) = $devfile =~ m{/([^/]+)$}; my $devarray = $damndevs{$devdigit} || die "fail to find $devdigit in damndevs IMPOSSIBLE! "; #~ dd( $devdigit , $devarray ); ## worked my $contents = read_file( $devfile ); if( $contents =~ /\b$file\b/i ) { if( -e "copied_files/$devdigit/$file" ) { push @$devarray, "$file\n"; my $des = "copied_files/$devdigit/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @$devarray, "$file\n"; my $des = "copied_files/$devdigit/"; copy( "$dir/$file", $des ) or die "$!"; } } ## end if( $contents =~ /\b$file\b/i) } } ## end sub extract_files