User since
2009-01-16
1
Artikel
BenutzerIn
Hallo Zusammen,
mich beschäftigt gerade ein Problem wo ich nicht so recht weiter komme.
Ich erhalte von einem externen Server Dateien, und möchte diese sortieren und jeweils die neuste (aktuelle) davon behalten. Die aktualisierten Dateien sind jeweils im Namen um das aktuelle Datum/Zeit erweitert. Beispiel:
prefix_data1_01.01.2009.12.12.00
prefix_data1_01.01.2009.12.12.30
prefix_data1_01.01.2009.12.13.00 # neuste von data1
prefix_data2_01.01.2009.12.14.00
prefix_data2_01.01.2009.12.14.30
prefix_data2_01.01.2009.12.15.30 # neuste von data2
...
Ziel ist es die jeweils aktuellste Version von data1, data2, etc. zu behalten. Die anderen sollen gelöscht werden
Für kleine Hinweise wie ich das Problem angehen könnte wäre ich dankbar.
User since
2003-08-04
14371
Artikel
ModeratorIn
Am besten das Verzeichnis auslesen (siehe
perldoc -f opendir,
perldoc -f readdir) und einen Hash für die Dateien bilden. Dabei holst Du am besten mit einem Regulären Ausdruck den relevanten Teil ("data1", "data2",...) aus dem Dateinamen und wenn die Datei "neuer" ist, speicherst Du den Dateinamen als Wert zu dem Schlüssel (der relevante Teil). Am Ende sollte ein Hash stehen, der ungefähr so aussieht:
%hash = (
data1 => 'prefix_data1_01.01.2009.12.13.00',
data2 => 'prefix_data2_01.01.2009.12.15.30',
# usw.
);
Löschen von Dateien geht mit unlink (siehe
perldoc -f unlink)