我应该使用什么 Perl 脚本来仅将文件名中的前 8 个字符更改为全部大写,而不是将整个文件名更改为全部大写的脚本?
这是我如何设置它:
#!/usr/bin/perl
chdir "directory path";
#@files = `ls *mw`;
@files = `ls | grep mw`;
chomp @files;
foreach $oldname (@files) {
$newname = $oldname;
$newname =~ s/mw//;
print "$oldname -> $newname\n";
rename("$oldname","$newname");
}
最佳答案
您可以使用此正则表达式:
my $str = 'Hello World!';
$str =~ s/^(.{8})/uc($1)/se; # $str now contains 'HELLO WOrld!'
关于Perl 脚本使前 8 个字符全部大写,但不是整个文件名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9891026/