我应该使用什么 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/

10-14 04:12