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";
  }
}
相关推荐
蓝莓星冰乐7 分钟前
第一章:C语言概述与环境搭建
c语言·开发语言
add45a9 分钟前
嵌入式C++低功耗设计
开发语言·c++·算法
毕设源码-赖学姐12 分钟前
【开题答辩全过程】以 基于Java的婚礼策划平台的设计与实现为例,包含答辩的问题和答案
java·开发语言
2401_8747325318 分钟前
C++中的状态模式
开发语言·c++·算法
m0_7166670739 分钟前
实时数据压缩库
开发语言·c++·算法
dapeng28701 小时前
多协议网络库设计
开发语言·c++·算法
浅浅的小草1 小时前
APM使用LUA脚本发送实现遥控器PWM信号输出CAN协议信号
开发语言·apm
星空露珠1 小时前
又双叒叕统计被炸死的lua脚本
开发语言·数据结构·算法·游戏·lua
sinat_255487811 小时前
transient 修饰符·学习笔记
java·开发语言·spring
阿猿收手吧!1 小时前
【C++】建造者与代理模式实战解析
开发语言·c++·代理模式