如何使用Perl轻松批量重命名文件? [英] How can I easily bulk rename files with Perl?

查看:187
本文介绍了如何使用Perl轻松批量重命名文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有很多文件要重命名,我试图做一个正则表达式来匹配它们,但是即使我卡在文件上也被命名为:

I have a lot of files I'm trying to rename, I tried to make a regular expression to match them, but even that I got stuck on the files are named like:

文件名01

File Name 01

文件名100

文件名02

文件名03

等等,我想在小于100的任何文件后面添加一个"0"(零),如下所示:

etc, I would like to add a "0" (zero), behind any of file that are less than 100, like this:

文件名001

File Name 001

文件名100

文件名002

文件名003

最接近匹配它们的地方就是使用了find -type d |.排序-r | grep'[1-9] [0-9] $',但是我不知道如何替换它们.在此先感谢您可以为我提供的任何帮助.我在CentOS上是否有帮助,所有这些都是通过SSH完成的.

The closest I got to so much as matching them was using this find -type d | sort -r | grep ' [1-9][0-9]$' however I could not figure out how to replace them. Thanks in advance for any help you can offer me. Im on CentOS if that is of any help, all this is being done via SSH.

推荐答案

perl -e 'foreach $f (glob("File\\ Name*")) { $nf = $f; $nf =~ s/(\d+)$/sprintf("%03d",$1)/e; print `mv \"$f\" \"$nf\"`;}'

也许有点矫kill过正,但这确实是要问的.

A bit overkill maybe, but it does what is asked.

这篇关于如何使用Perl轻松批量重命名文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆