Perl脚本使前8个字符全部大写但不是整个文件名

use*_*706 3 perl rename file

我应该使用什么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");
}
Run Code Online (Sandbox Code Playgroud)

Sta*_*amm 8

你可以使用这个正则表达式:

my $str = 'Hello World!';
$str =~ s/^(.{8})/uc($1)/se; # $str now contains 'HELLO WOrld!'
Run Code Online (Sandbox Code Playgroud)