如何从目录名称中提取父目录的名称?

时间:2013-08-02 16:12:14

标签: perl

基本上我有一个环境变量,它存储目录的位置,如下所示

export MYPATH=/home/test/mysamplepath

现在在Perl脚本中,我想要知道该目录上方的一条路径,使用一个函数或一些表达式,通过它可以删除最后一部分,如下所示

$myNewPath = '/home/test'

4 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:0)

my $ mynewpath = $ oldpath =〜/(.+?)/\w+/; 试试吧。

答案 2 :(得分:0)

在基于Linux或Unix的系统上,您可以像这样读取环境变量,然后使用正则表达式剪切所需的其余路径:

#!/usr/bin/perl

use warnings;
use strict;

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

答案 3 :(得分:0)

您可以将路径与正则表达式匹配:

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

如果您在网址中转发\,这也有效。