Thread zwei Arrays vergleichen und doppelten Inhalt löschen (31 answers)
Opened by Matze2.pl at 2014-11-13 10:27

FIFO
 2014-11-13 14:04
#178335 #178335
User since
2005-06-01
469 Artikel
BenutzerIn

user image
Hier mal ein ungetesteter Ansatz, wie Du veraltete Dubletten eliminieren kannst. Keine Ahnung, ob das Deinen Bedarf trifft, aber Du siehst das Konzept:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
use warnings;
use strict;
use File::Find;
use Cwd 'getcwd';

my $cwd = getcwd();
my $loesch_dir = "/var/lib/testverzeichnis/k_loesch";
my $transport_dir = "$loesch_dir/k_transport";

# Kandidaten fürs Löschen zusammenstellen

my @loesch_kandidaten;

sub files_only {
    push( @loesch_kandidaten, $_ ) if -f $File::Find::name;
}

find( \&files_only, $loesch_dir ) ;

# @loesch_kandidaten enthält jetzt alle Namen (ohne Pfad!) von allen 
# "normalen" Dateien, die in $loesch_dir und seinen Unterverzeichnissen stehen.

# Ins Transport-Verzeichnis wechseln
chdir( $transport_dir );

for my $file ( @loesch_kandidaten ) {
    if ( -f $file and time - (stat($file))[9] > 14 * 86400 ) {  
        print "entferne $file ...\n";
        # unlink( $file );              # <--- entkommentieren
    }
}

chdir( $cwd );
Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it? -- Brian Kernighan: "The Elements of Programming Style"

View full thread zwei Arrays vergleichen und doppelten Inhalt löschen