Linux下批量重命名

linux中非常有用的一个技巧就是对当前目录或某一目录下的某些文件进行重命名操作。比如,当前目录下有很多以数字命名的文件,且数字位数不等,有一位的也有多位的,现在想对这些文件重命名加上.jpg后缀。该怎么操作呢?

分析一下,应该分两步进行:

第一步,首先要找出当前目录下的所有以数字命名的文件。

有好多种方法:

1.可以用ls命令配合正则表达式

ls | grep -E '[0-9]+'

这个命令其实不能完全正确匹配,这个命令会找出只要文件名中含有一个或多个数字的文件。也就是说如果文件名中还有其他字符,比如字母,下划线也会被匹配到。

ls |grep -E '^[0-9]*[0-9]$'

这个命令是找出文件名中以数字开头,以数字结尾,并且中间有0或多个数字的文件。

第二步,重命名文件,添加后缀

ls | grep -E '^[0-9]*[0-9]$' | awk '{print $1}'|awk '{printf "mv %s %s.jpg\n",$1,$1}' | sh

或者

ls|grep -E '^[0-9]*[0-9]$' | awk '{print "mv "$1" "$1".jpg"}'|sh

print和printf的区别在于前者会自动换行,后者不会。当然printf比print有更丰富的输出控制格式。

注意,上面这个命令中的\n很重要,如果没有\n就会出错。另外最后的|sh也不能少。

另外,查找某一类型的文件还可以用find命令,find -type或find -name




如何去掉文件名的后缀?

ls |grep '.jpg'| awk -F '.' '{print "mv "$0" "$1}'|sh



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值