Use*_*611 4 recursion perl rename
如何使用Perl将.wma和.wmv扩展名的驱动器上的所有文件重命名为.txt扩展名,无论它们在目录结构中有多深?
Sin*_*nür 11
请参阅perldoc文件::查找.文档中的示例非常明确,可以帮助您完成大部分工作.尝试时,请使用更多信息更新问题.
如果这是一次学习练习,那么首先尝试做自己就会学得更好.
更新:
假设您有机会自己研究如何做到这一点,并考虑到已发布各种解决方案的事实,我发布了我将如何做到这一点.请注意,我会选择忽略诸如".wmv"之类的文件:我的正则表达式需要在点之前出现一些内容.
#!/usr/bin/perl
use strict;
use warnings;
use File::Find;
my ($dir) = @ARGV;
find( \&wanted, $dir );
sub wanted {
return unless -f;
return unless /^(.+)\.wm[av]$/i;
my $new = "$1.txt";
rename $_ => $new
or warn "'$_' => '$new' failed: $!\n";
return;
}
__END__
Run Code Online (Sandbox Code Playgroud)