我想用Perl获取文件的绝对路径。该文件位于/a/b/c/file.txt
。所以,我想得到/a/b/c/
。我目前无法使用Cwd::cwd()
,因为实际工作目录为/a/b/
。这不是一个错误,因为Perl脚本是从/a/b/
调用的。
那么,是否有一个Perl函数来捕获它,或者我是否必须使用正则表达式来查找它?
答案 0 :(得分:5)
use File::Basename;
my $path = "/a/b/c/file.txt";
my ($filename, $dir) = fileparse($path);
答案 1 :(得分:2)
如果文件名没有特殊字符,并且格式化为name.ext,则可以使用如下的正则表达式:
(.*\/)[\w-]+\.[\w]{3}
文件名可以包含A-Z,a-z,0-9和 - (减号)