我的程序需要重命名以此结尾的文件
文件(1) 文件(2) 文件(3)
我希望将它们重命名为此
file_1 file_2 file_3
我在c ++中试过这个,但这看起来效率不高。我认为Perl会很棒,但不知道从哪里开始。
答案 0 :(得分:1)
答案 1 :(得分:0)
#!/usr/bin/perl
use strict;
use warnings;
my $dir = 'folder';
my @dir = ();
opendir(DIR, $dir);
@dir = readdir(DIR);
closedir(DIR);
foreach my $file (@dir) {
my $f=$file;
$f =~ s/\(/_/;
$f =~ s/\)//;
rename "$dir/$file", "$dir/$f";
}
\(
中的s/\(/_/
与"("在文件名file(1)
中匹配,并替换为" _",所以{{ 1}}使$f =~ s/\(/_/;
成为$f
。file_1)
中的\)
与")相匹配"在文件名s/\)//
中,替换为"" (无),file_1)
使$f =~ s/\)//;
成为$f
。