基本上我有一个环境变量,它存储目录的位置,如下所示
export MYPATH=/home/test/mysamplepath
现在在Perl脚本中,我想要知道该目录上方的一条路径,使用一个函数或一些表达式,通过它可以删除最后一部分,如下所示
$myNewPath = '/home/test'
答案 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;
}
如果您在网址中转发\
,这也有效。