修改目录中的文件名

时间:2016-05-17 15:39:29

标签: perl

我需要修改目录中文件名的一部分,我使用下面的代码,但它只在终端中打印字符串的修改但不保存它

my @files = glob("*.grb *.out");
foreach my $file (@files) {
    print "$file\n";
    s/d02/d03/g;
}

如何使用字符串d03而不是d02来获取它们?

1 个答案:

答案 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*个文件(磁盘上)。