2013-08-02 267 views
0

基本上我有一種存儲目錄的位置下方如何從目錄名稱中提取父目錄的名稱?

export MYPATH=/home/test/mysamplepath 

現在,在Perl腳本給出我想或者使用一個功能或某些表達知道目錄上方的一個路徑的環境變量,通過該最後部分可以被刪除,即喜歡的東西下面

$myNewPath = '/home/test' 

回答

0

在Linux或Unix爲基礎的系統,你可以這樣寫的環境變量,然後切的路徑需要休息用正則表達式:

#!/usr/bin/perl 

use warnings; 
use strict; 

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

感謝它的工作。 – Abhinav

0

我的$ mynewpath = $ oldpath =〜/(.+?)/\w+/; 試試看。

6
use File::Basename; 
my $myNewPath = dirname($ENV{MYPATH}); 
0

可以匹配正則表達式的路徑:

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

這也適用,如果你已經在你的網址轉義\