Проверить наличие динамического файла с определенным типом в другом каталоге или нет после получения полного пути к нему? - PullRequest
0 голосов
/ 31 августа 2018

У меня есть каталог (в верхнем каталоге текущего скрипта) с некоторыми файлами внутри. Здесь у меня есть только 1 тип файла с расширением .log, но его базовое имя * .log является динамическим и будет меняться при каждом запуске скрипта:

.. / Ouput /

aaa.txt bbb.txt *.log

На этом я хочу проверить, существует ли файл * .log или нет, а затем назначить его полный путь с именем файла переменной для последующего процесса. Я пытаюсь с этим:

#!/usr/bin/perl -w
use strict;
use warnings;
use Cwd;

my $dir = getcwd; # Get current directory path into $dir
my $filepath = $dir . '..\\output\\*.log';
# ..\\output\\ to get Upper location and output folder
# assign any "*" base name file with type ".log" to $filepath  
if(-e $filepath ) {
    print("File $filepath exist \n");
}
else
{
    print("File $filepath does not exist \n");
}

Но я всегда получаю $ filepath не существует. Есть ли какая-то ошибка?

1 Ответ

0 голосов
/ 31 августа 2018

Вы можете использовать perl glob.
Измените свой скрипт на это:

#!/usr/bin/perl -w
use strict;
use warnings;
use Cwd;

my $dir = getcwd; # Get current directory path into $dir
my $filepath = glob($dir . '/../output/*.log');
# ..\\output\\ to get Upper location and output folder
# assign any "*" base name file with type ".log" to $filepath  
if(-e $filepath ) { 
    print("File $filepath exist \n");
}
else
{
    print("File $filepath does not exist \n");
}

Однако он будет игнорировать все файлы, кроме первых, которые соответствуют * .log.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...