Mac Os X 没有有用的 linux 命令rename
,它的格式如下:
rename 'perl-regex' list-of-files
所以这是我放在一起的内容,但它不会重命名任何文件($new 始终与 $file 相同):
#!/usr/bin/env perl -w
use strict;
use File::Copy 'move';
my $regex=shift;
my @files=@ARGV;
for my $file (@files)
{
my $new=$file;
$new =~ "$regex"; # this is were the problem is !!!
if ($new ne $file)
{
print STDOUT "$file --> $new \n";
move $file, ${new} or warn "Could not rename $file to $new";
}
}
就好像我没有通过正则表达式,如果我硬编码它
$new =~ s/TMP/tmp;
它会工作得很好......有什么想法吗?