perl统一修改文件前缀并排序

perl统一修改文件前缀并排序

如题,perl统一修改文件前缀并排序。

举例说明,修改*.txt文件,并排序。

当前目录下,有如下文件

perl 复制代码
a.txt
b.txt
fsjkd.txt
ffsjk_tst.txt

运行rename_prefix脚本后,输入的第一个参数为txt,第二个参数为test,结果如下:

perl 复制代码
test1.txt
test2.txt
test3.txt
test4.txt

rename_prefix脚本的内容如下:

perl 复制代码
#!/bin/perl
use 5.010;

print "Pleast input file suffix which U want to rename!\n";
chomp (my $suffix = <>); # 去除输入参数中的回车符
print "Pleast output file prefix which U want to rename!\n";
chomp (my $prefix = <>); # 去除输入参数中的回车符

my $i;
foreach my $file(glob "*.$suffix") {
  $i += 1;
  my $new_file = $file =~ s/\w*\./$prefix$i./r; # 使用r修饰符,实际上是在替换前先拷贝一份待替换数据,然后在副本上进行替换,所以原始数据不会发生改变
  if (-e $new_file) {
    warn "Cannot rename $file to $new_file: $new_file exists\n";
  } elsif (rename $file => $new_file) {
  } else {
    warn "rename $file to $new_file failed:$!\n";
  }
}
相关推荐
Interview Aid1123 小时前
TikTok OA 四题分享|半小时内 AC,题目基本都是实现题
java·开发语言·算法·面试·职场和发展
CoderIsArt11 小时前
C#中UI 线程与 Dispatcher
开发语言·ui·c#
AI情绪识别开源13 小时前
检信 ALLEMOTION OS 加密打包可执行程序 — 全面测试报告版本: v1.3功能测试 / 性能测试 /
开发语言·数据结构·人工智能·功能测试
「QT(C++)开发工程师」14 小时前
C++ auto 用法详解
开发语言·c++
OPEN-F14 小时前
C++STL教程:容器适配器与实用工具
开发语言·c++
yaoxin52112314 小时前
507. Java 反射 - 在 BeanFactory 中实现依赖注入
java·开发语言
OPEN-F15 小时前
C++模板教程:变参模板、折叠表达式与SFINAE
java·开发语言·c++
有点。15 小时前
C++二叉搜索树进阶
开发语言·c++
HugoStudio_SWAN15 小时前
【擦除重绘】C++ 控制台动画:弹跳 Logo DVD 屏保效果
开发语言·c++·学习·程序人生