我需要修改目录中文件名的一部分,我使用下面的代码,但它只在终端中打印字符串的修改但不保存它
my @files = glob("*.grb *.out");
foreach my $file (@files) {
print "$file\n";
s/d02/d03/g;
}
如何使用字符串d03而不是d02来获取它们?
答案 0 :(得分:1)
my @files = glob("*.grb *.out");
foreach my $file (@files) {
(my $newName = $file) =~ s/d02/d03/g;
rename $file, $newName;
}
或者如果你有Perl 5.14 +,
my @files = glob("*.grb *.out");
foreach my $file (@files) {
my $newName = $file =~ s/d02/d03/gr;
rename $file, $newName;
}
这会将所有*d02*
个文件重命名为*d03*
个文件(磁盘上)。