Perl 스크립트에 디렉토리 세트가 있는지 확인해야합니다. 디렉토리 이름은 XXXX * YYY 형식입니다 - 각 XXXX를 확인하고 true 인 경우 if 문을 입력해야합니다.와일드 카드로 Perl에 디렉토리 존재 여부 확인
제 스크립트에는 $ monitor_location (스캔 할 루트 디렉토리에 대한 경로 포함)과 $ clientid (XXXX 포함)라는 두 개의 변수가 있습니다.
아래의 코드 스 니펫이 확장되어 내가하는 일 중 더 많은 것을 보여줍니다. 나는 각 클라이언트 ID를 반환하는 쿼리를 가지고 있으며, 반환 된 각 레코드에 대해 루핑을 수행하고 해당 클라이언트 ID가 사용하는 디스크 공간을 계산하려고합니다.
는 지금까지 (작동하지 않습니다) 다음 코드가 :
# loop for each client
while (($clientid, $email, $name, $max_record) = $query_handle1->fetchrow_array())
{
# add leading zeroes to client ID if needed
$clientid=sprintf"%04s",$clientid;
# scan file system to check how much recording space has been used
if (-d "$monitor_location/$clientid\*") {
# there are some call recordings for this client
$str = `du -c $monitor_location/$clientid* | tail -n 1 2>/dev/null`;
$str =~ /^(\d+)/;
$client_recspace = $1;
print "Client $clientid has used $client_recspace of $max_record\n";
}
}
분명히하기 위해, 나는 XXXX로 시작하는 모든 폴더가있는 경우 if 문을 입력합니다.
희망적이라고 생각하세요! 감사합니다
나는 달성하고자하는 것을 더 잘 보여주기 위해 질문에서 코드를 편집했습니다. 위의 코드를 코드에 어떻게 적용 할 수 있는지를 고민하는 것은 약간의 의견을 고맙게 생각할 것입니다. 감사합니다 – btongeorge
grep의 좋은 해결책과 좋은 사용법 – gaussblurinc
@btongeorge : 만약 그 디렉토리가 존재 하는지를 알고 싶다면'if (grep -d, glob "$ ...")'를 사용할 수 있습니다. – choroba