2013-08-02 6 views
0

는 기본적으로 펄 스크립트에 이제디렉토리 이름에서 상위 디렉토리의 이름을 추출하려면 어떻게합니까?

export MYPATH=/home/test/mysamplepath 

아래에 주어진 나는 기능과 일부 표현을 사용하거나 디렉토리 위의 하나 개의 경로를 알고 싶은 디렉토리의 위치를 ​​저장하는 환경 변수를 가지고있는 마지막 부분이 수를 통해 아래처럼 뭔가를 제거하십시오.

$myNewPath = '/home/test' 

답변

0

이 같은 환경 변수를 읽은 다음 정규식과 경로의 필요한 나머지 부분을 줄일 수 있습니다 : 당신은 정규 표현식과 경로를 일치시킬 수 있습니다

#!/usr/bin/perl 

use warnings; 
use strict; 

my $path = $ENV{'MYPATH'}; 
$path =~ s/^(\/.+)\/.+\/?$/$1/; 
print $path . "\n"; 
+0

감사합니다. – Abhinav

0

my $ mynewpath = $ oldpath = ~ /(.+?)/\w+/; 시도해보십시오.

리눅스 또는 유닉스 기반 시스템
6
use File::Basename; 
my $myNewPath = dirname($ENV{MYPATH}); 
0

: 당신이 당신의 URL에 \을 탈출 한 경우

if($line =~ /export\s\$MYPATH=(.*)(?<!\\)\//){ 
    $new_path = $1; 
} 

이 또한 작동합니다.

관련 문제