Linux-重命名命令rename

说到重命名,相信大多数和我一样的Linux初学者想到的就是mv ,简单的重命名当然使用mv已经足够,但是比较复杂的重命名(比如根据正则重命名)就需要用到更顺手的工具了,那就是rename

用法

$ rename [options] [perlexpr] [files]

options

-v 显示成功重命名的文件
-n 只显示将被重命名的文件,但是不进行重命名
-f 如果文件已存在,覆盖
-e 表明需要需要被执行的code,如果没有-e,那么第一个参数将被当成code

perlexpr

这是一个Perl表达式,文件名应当在其中被改变,没学过Perl也没关系,这个命令用到的语法很像sed,容易上手。

files

需要重命名的文件

示例

最容易掌握命令的方法就是动手试试了,下面来看看一些例子

去除文件扩展名

例如我们想把文件扩展名为.bak 的文件扩展名去掉,可以这样

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

*.bak 为通配符(wildcard),会被shell展开为各个文件名

去除文件名中的空格

$ rename 's/ //g' *

g 是global的意思,替换所有的空格为空字符(也就是删除啦)

文件名转为小写

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

这里用到了y 意思是翻译,前后两个字符集是对应的,遇到前面一个字符集(A-Z)里面的字符就换成后面一个字符集(a-z)里面的相应字符。

使用分组

现在有一堆文件,他们的文件名模式是这样的第一部分-haha-第二部分.file ,现在要把中间的-haha- 删去并把第一部分的字符串和第二部分的字符串对调,可以这样:

$ rename 's/(.*)-haha-(.*)(.file)/$2$1$3/' *.file

对分组不了解可以去补补正则表达式了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值