rename结合awk批量修改文件名

整理硬盘文件的时候发现一个lie to me目录,里面的文件名是如下形式的:
飞鸟娱乐(bbs.wofei.net).别地我撒谎第二季第1集1024x576版.rmvb
飞鸟娱乐(bbs.wofei.net).别地我撒谎第二季第2集1024x576版.rmvb
飞鸟娱乐(bbs.wofei.net).别地我撒谎第二季第3集1024x576版.rmvb
飞鸟娱乐(bbs.wofei.net).别对我撒谎季第二季第11集1024x576版.rmvb
飞鸟娱乐(bbs.wofei.net).别对我撒谎季第二季第12集1024x576版.rmvb
飞鸟娱乐(bbs.wofei.net).别对我撒谎季第二季第13集1024x576版.rmvb
飞鸟娱乐(bbs.wofei.net).别对我撒谎季第二季第14集1024x576版.rmvb
飞鸟娱乐(bbs.wofei.net).别对我撒谎季第二季第15集1024x576版.rmvb
飞鸟娱乐(bbs.wofei.net).别对我撒谎季第二季第16集1024x576版.rmvb
飞鸟娱乐(bbs.wofei.net).别对我撒谎第2季第10集1024x576版.rmvb
飞鸟娱乐(bbs.wofei.net).别对我撒谎第2季第6集1024x576版.rmvb
飞鸟娱乐(bbs.wofei.net).别对我撒谎第2季第7集1024x576版.rmvb
飞鸟娱乐(bbs.wofei.net).别对我撒谎第2季第8集1024x576版.rmvb
飞鸟娱乐(bbs.wofei.net).别对我撒谎第2季第9集1024x576版.rmvb
飞鸟娱乐(bbs.wofei.net).别对我撒谎第一季第10集1024x576版.rmvb
太难看了,隧想把“飞鸟娱乐(bbs.wofei.net)”和“1024x576版”字样去掉。
1、虚拟机添加桥接网卡,windows关闭防火墙,然后用下面的命令把刚才的目录共享后挂载到linux里面去
mount -t cifs -o username=huang,password=longmima //192.168.1.2/lie /mnt
2、用rename命令开始重命名
rename "飞鸟娱乐(bbs.wofei.net)" "" *.rmvb (rename的man文档里面有一句rename from to file...,用美国队长在空中航母上对钢铁侠说的那句“in english”来翻译这句话的意思是,from要改什么,to改成什么,file改哪些文件)
结果这条命令一执行,然后输入ls,竟然发现文件不见了,我了个大擦,跑到windows那边去看,发现文件还在,原来“飞鸟娱乐(bbs.wofei.net).”最后面的“.”我没有去掉,文件全隐藏了。。。更擦的是文件隐藏后rename命令居然无效了,我执行rename "1024x576版" "" *.rmvb 没有任何反应,虽然命令返回值 $?是0,但文件名没有修改成功。
rename
3、现在用awk把最前面的.干掉

[root@NFS-C mnt]# ls -A | awk -F. '{print "mv "$0" "$2".rmvb"}'
mv .别对我撒谎季第二季第11集1024x576版.rmvb 别对我撒谎季第二季第11集1024x576版.rmvb
mv .别对我撒谎季第二季第12集1024x576版.rmvb 别对我撒谎季第二季第12集1024x576版.rmvb
mv .别对我撒谎季第二季第13集1024x576版.rmvb 别对我撒谎季第二季第13集1024x576版.rmvb
mv .别对我撒谎季第二季第14集1024x576版.rmvb 别对我撒谎季第二季第14集1024x576版.rmvb
mv .别对我撒谎季第二季第15集1024x576版.rmvb 别对我撒谎季第二季第15集1024x576版.rmvb
mv .别对我撒谎季第二季第16集1024x576版.rmvb 别对我撒谎季第二季第16集1024x576版.rmvb
mv .别对我撒谎第2季第10集1024x576版.rmvb 别对我撒谎第2季第10集1024x576版.rmvb
mv .别对我撒谎第2季第6集1024x576版.rmvb 别对我撒谎第2季第6集1024x576版.rmvb
mv .别对我撒谎第2季第7集1024x576版.rmvb 别对我撒谎第2季第7集1024x576版.rmvb
mv .别对我撒谎第2季第8集1024x576版.rmvb 别对我撒谎第2季第8集1024x576版.rmvb
mv .别对我撒谎第2季第9集1024x576版.rmvb 别对我撒谎第2季第9集1024x576版.rmvb
mv .别对我撒谎第一季第10集1024x576版.rmvb 别对我撒谎第一季第10集1024x576版.rmvb
mv .别对我撒谎第一季第11集1024x576版.rmvb 别对我撒谎第一季第11集1024x576版.rmvb
mv .别对我撒谎第一季第12集1024x576版.rmvb 别对我撒谎第一季第12集1024x576版.rmvb
mv .别对我撒谎第一季第13集1024x576版.rmvb 别对我撒谎第一季第13集1024x576版.rmvb
mv .别对我撒谎第一季第1集1024x576版.rmvb 别对我撒谎第一季第1集1024x576版.rmvb
mv .别对我撒谎第一季第2集1024x576版.rmvb 别对我撒谎第一季第2集1024x576版.rmvb
mv .别对我撒谎第一季第3集1024x576版.rmvb 别对我撒谎第一季第3集1024x576版.rmvb
mv .别对我撒谎第一季第4集1024x576版.rmvb 别对我撒谎第一季第4集1024x576版.rmvb
mv .别对我撒谎第一季第5集1024x576版.rmvb 别对我撒谎第一季第5集1024x576版.rmvb
mv .别对我撒谎第一季第6集1024x576版.rmvb 别对我撒谎第一季第6集1024x576版.rmvb
mv .别对我撒谎第一季第7集1024x576版.rmvb 别对我撒谎第一季第7集1024x576版.rmvb
mv .别对我撒谎第一季第8集1024x576版.rmvb 别对我撒谎第一季第8集1024x576版.rmvb
mv .别对我撒谎第一季第9集1024x576版.rmvb 别对我撒谎第一季第9集1024x576版.rmvb

上面的命令已经把我们想要做的操作拼出来了,此时只要在命令的最后面加个管道丢给bash就行
rename1

4、ls | awk -F"576" '{print "mv "$0" "$1".rmvb"}'|bash (把“576版”字样去掉)
5、rename "1024x" "" *.rmvb
rename2

6、第二步的时候 我执行rename "1024x576版" "" *.rmvb ,估计是有中文的原因。

原创文章,转载请注明: 转载自笛声

本文链接地址: rename结合awk批量修改文件名

1 条评论

  • dige 2018年9月5日 回复

    把文件夹内所有文件按数字序列重命名
    ls |awk '{print "mv "$1" " NR".jpg"}' | bash

发表评论

电子邮件地址不会被公开。 必填项已用*标注