2013-08-02 257 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; 
} 

这也适用,如果你已经在你的网址转义\