rename批量命名命令

  参考:http://www.ttlsa.com/linux-command/linux-rename-command-batch-rename/

  Linux下rename命令有两种版本一种是C语言版本,一种是perl语言版本

  查看版本

man renmae

   第一行出现以下内容的是perl版本

 User Contributed Perl Documentation

   第一行出现其他的或者则是C语言版本

User Commands 

   PS:CentOS默认是C语言版本,Ubuntu是perl版本

  C语言版本命令格式

rename from to file

   说明

from 修改什么名字
to 修改成什么名字
file 文件名

   举例说明,把以下文件修改成类似html的格式

1.htm
2.htm
3.htm
4.htm
5.htm
6.htm
7.htm
8.htm
9.htm

   命令如下,把htm修改成html 使用*.htm批量匹配文件

rename htm html *.htm

   现在总结一下rename C语言版本所能实现的功能: 批量修改文件名,结果是每个文件会被用相同的一个字符串替换掉!也就是说,无法实现诸如循环 然后按编号重命名

  perl版rename格式

rename [ -h|-m|-V ] [ -v ] [ -n ] [ -f ] [ -e|-E perlexpr]*|perlexpr [ files ]

   注意,perl版本的rename只有两个参数,第一个参数为perl正则表达式,第二个参数为所要处理的文件

  man rename帮助实例

  1)有一批文件已.bak结尾,把.bak删除

 rename 's/\.bak$//' *

   这个命令和sed里面的正则是一样的

  \. 转义

       bak$ 以bak结尾

  2)把所有文件名内含有大小字母的,修改为小写字母

rename 'y/A-Z/a-z/' *

   其他列子

  在文件头部统一加hello

rename 's/^/hello/' *

   把htm换成html

rename 's/htm/html/' *

   在尾部加.zip

rename 's/$/.zip/' *

   规则化数字编号名,比如 1.jpg, 2.jpg ..... 100.jpg , 现在要使文件名全部三位即 1.jpg .... 001.jpg

rename 's/^/00/' [0-9].jpg #把1-9前面加上00
rename 's/^/0/' [0-9][0-9].jpg #把10-99前面加上0

 

转载于:https://www.cnblogs.com/minseo/p/11535532.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值