我有一个Perl脚本处理一堆文件名,并在反引号中使用这些文件名.但文件名包含空格,撇号和其他时髦字符.
我希望能够正确地逃脱它们(即不使用我头顶的随机正则表达式).是否存在正确转义字符串以在bash命令中使用的CPAN模块?我知道我过去已经解决了这个问题,但这次我找不到任何东西.关于它的信息似乎令人惊讶.
我有一个搜索,从我的角度来看,使用反引号是解决这个问题的唯一方法.我正在尝试mdls从Perl中调用目录中每个文件的命令,以找到它上次访问的时间.我遇到的问题是,在我的文件名中,find我有非转义空格,bash显然不喜欢.有没有一种简单的方法可以在传递文件名之前转义文件名中的所有空格mdls.如果这是一个明显的问题,请原谅我.我对Perl很新.
my $top_dir = '/Volumes/hydrogen/FLAC';
sub wanted { # Learn about sub routines
if ($File::Find::name) {
my $curr_file_path = $File::Find::name. "\n";
`mdls $curr_file_path`;
print $_;
}
}
find(\&wanted, $top_dir);
Run Code Online (Sandbox Code Playgroud)