Perl - Dateinamen ermitteln
Hallo zusammen,
ich muss mittels Perl ein kleines Skript schreiben, welches mir anhand einer Wildcard Suche 2 Dateinamen in einem Verzeichnis ermittelt und jeweils in eine Variable zur weiteren Verarbeitung schreibt.
Ausgangslage:
In einem Verzeichnis wird immer ein Filepärchen (exp*.dat & exp*.flg) angeliefert.
Der Filename beginnt immer mit einem exp, danach kommt ein beliebiger/variabler Zahlenwert.
Beide Dateinamen sind bis auf die Endung identisch.
Ich muss nun prüfen, ob in einem Verzeichnis ein Flagfile vorhanden ist, und falls ja, muss ich sowohl das Flagfile und das Datenfile weiter verarbeiten.
In Sachen Perl bin leider noch blutiger Anfänger und hoffe Ihr könnt mir helfen.
Aktuell kämpfe ich noch bei dem Punkt, wie ich bei meiner Prüfung auch den Pfad ($local_dir) mit angebe, sowie wie ich mit den Wildcard die beiden Dateinamen ermitteln kann.
Wenn ich den $flag_file Namen fest angebe, und die Datei im gleichen Verzeichnis liegt, funktioniert schon mal die Prüfung.
Anbei mal meine ersten Schritte:
Gruß
Michél
ich muss mittels Perl ein kleines Skript schreiben, welches mir anhand einer Wildcard Suche 2 Dateinamen in einem Verzeichnis ermittelt und jeweils in eine Variable zur weiteren Verarbeitung schreibt.
Ausgangslage:
In einem Verzeichnis wird immer ein Filepärchen (exp*.dat & exp*.flg) angeliefert.
Der Filename beginnt immer mit einem exp, danach kommt ein beliebiger/variabler Zahlenwert.
Beide Dateinamen sind bis auf die Endung identisch.
Ich muss nun prüfen, ob in einem Verzeichnis ein Flagfile vorhanden ist, und falls ja, muss ich sowohl das Flagfile und das Datenfile weiter verarbeiten.
In Sachen Perl bin leider noch blutiger Anfänger und hoffe Ihr könnt mir helfen.
Aktuell kämpfe ich noch bei dem Punkt, wie ich bei meiner Prüfung auch den Pfad ($local_dir) mit angebe, sowie wie ich mit den Wildcard die beiden Dateinamen ermitteln kann.
Wenn ich den $flag_file Namen fest angebe, und die Datei im gleichen Verzeichnis liegt, funktioniert schon mal die Prüfung.
Anbei mal meine ersten Schritte:
use strict;
use warnings;
use Net::FTP;
my $ftp;
my $host = "";
my $user = "";
my $pass = "";
my $local_dir = "C:\/Users\/micree14204\/eclipse-workspace\/skriptunterstuetzung\/";
my $ftp_dir = "";
my $flag_file = "exp00000.flg";
if ( -e $flag_file)
{
print "Datei $flag_file ist vorhanden\n";
}
else
{
print "Datei $flag_file ist nicht vorhanden\n";
}
Gruß
Michél
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 487938
Url: https://administrator.de/contentid/487938
Ausgedruckt am: 22.11.2024 um 07:11 Uhr
2 Kommentare
Neuester Kommentar
#!/usr/bin/perl
# Verzeichnis
my $local_dir = '/irgendein/verzeichnis';
# Verzeichnis öffnen
opendir(DIR,$local_dir);
# flag files suchen und in array speichern
@files = grep(/^exp\d+\.flg$/,readdir(DIR));
# Verzeichnis schließen
closedir(DIR);
# für jedes Flagfile
foreach $file (@files) {
# dateiname des flagfile in variable speichern
$flagfile = $file;
# dateiname des datafile erzeugen .flg durch .dat ersetzen
$datafile = $file;
$datafile =~ s/\.flg$/.dat/i;
# nur als Beispiel die Daten ausgeben
print "Flagfile : " . $local_dir . "/" . $flagfile . "\n";
print "Datafile : " $local_dir . "/" . $datafile . "\n";
}