曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 2818|回复: 0
打印 上一主题 下一主题

rename -- 批量命名文件

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34397
跳转到指定楼层
楼主
发表于 2012-3-26 10:05:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
rename 命令支持在命令行中给出正则表达式以批量命名文件,语法格式如下:
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
其中,perlexpr 是符合 perl 风格的正则表达式。

1. 将当前目录下的所有 .txt 结尾的文件改为以 .jpg 结尾:
# ls
1.txt  2.txt  3.txt
# rename 's/\.txt$/\.jpg/g' *.txt
# ls
1.jpg  2.jpg  3.jpg
上面正则中的 s 表示替换。

2. 将下面的文件名中的大写字母改为小写字母:
# ls
ABC.jpg  OPQ.jpg  XYZ.jpg
# rename 'y/A-Z/a-z/' *.jpg
# ls
abc.jpg  opq.jpg  xyz.jpg
在上面的正则表达式中,y 表示转换。

另外,-v 选项表示打印出成功重命名的信息:
# rename -v 'y/a-z/A-Z/' *.jpg
abc.jpg renamed as ABC.JPG
opq.jpg renamed as OPQ.JPG
xyz.jpg renamed as XYZ.JPG[/qutoe]

-n 选项不会实际进行转换,只是列出哪些文件会被转换,以及转换后的结果如何的信息:
[quote]# rename -n 'y/a-z/A-Z/' *.jpg
abc.jpg renamed as ABC.JPG
opq.jpg renamed as OPQ.JPG
xyz.jpg renamed as XYZ.JPG

-f 选项表示强制覆盖原来的文件。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-6-18 19:16 , Processed in 0.068388 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表