Check fil med mellemrum, etc.
Hej alle.Jeg har list problemer med et Perl script, som skal checke om en given fil findes på et linux filsystem.
Filnavnet står i variablen $configFile og indeholder oprindeligt dette:
/vmfs/volumes/45f963b4-69dbf9bc-4db5-001372600484/Skal slettes om lidt af (ML)/Skal slettes om lidt af (ML).vmx
Men som bekendt er mellemrum og paranteser ikke det bedste at bruge i et linux filsystem (filerne er oprettet fra en ikke-linux maskine). Så jeg gør følgende:
$configFile=~s/\s/\\ /g;
$configFile=~s/[(]/\\(/g;
$configFile=~s/[)]/\\)/g;
.. og får herefter følgende indhold i $configFile variablen:
/vmfs/volumes/45f963b4-69dbf9bc-4db5-001372600484/Skal\ slettes\ om\ lidt\ af\ \(ML\)/Skal\ slettes\ om\ lidt\ af\ \(ML\).vmx
Dette burde være et fuldt gyldigt linux filnavn, men når jeg i mit script prøver følgende:
unless (-e $configFile)
{
print "Dur ikke!";
}
.. så skriver den: Dur ikke!
Jeg har prøvet at cat'e det nye filnavn i linux konsollen, og det virker fortrindligt, så der må være et eller andet i Perl, jeg ikke forstår..
Håber I kan hjælpe.
Mvh.
