Thread höchste dateinamen verzeichnis (7 answers)
Opened by thorben at 2011-02-08 16:45

Gast thorben
 2011-02-08 16:45
#145483 #145483
Hallo,

ich möchte die Dateien eines Verzeichnis behalten, die den höchsten Dateinamen haben. Bspw. können die Dateien folgende Namen besitzen:
TestA_001a.txt
TestA_001b.txt

TestA_002a.txt
TestA_002b.txt

TestB_001a.txt


Ergebnis soll sein:
TestA_002a.txt
TestA_002b.txt
TestB_001a.txt


Meine Idee ist nun, die größten Dateinamen zu bestimmen, diese in einem Array zu speichern und dann mit dem Array des Verzeichnisses zu vergleichen. In @unique stehen auch die größten Dateinamen, ich habe nur keine Ahnung wie ich diese mit den Verzeichnisnamen vergleichen kann.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
	opendir DC, $dir or die "cann't open dir";
my @filenames = sort readdir(DC);
@filenames = reverse(@filenames);
closedir(DC);

foreach my $file (@filenames) {
my($filename, $dirname, $ftype) = fileparse($file, qr/\..*/, qr/\.(txt)/);

#abschneiden buchstabe
if (substr($filename, -1) =~ m/[a-z]/i) {
chop($filename);
}
push (@test, $filename, $file);
}


for my $file(@test) {
my ($root) = split(/\_/,$file);
next if(exists($hash{$root}));
$hash{$root} = $file;
}

my @unique = values(%hash);


Vielen, vielen Dank vorab.
Last edited: 2011-02-08 16:48:46 +0100 (CET)

View full thread höchste dateinamen verzeichnis