在咱们的工作生存中,不论是程序员还是非程序员,咱们都会遇到过一个需要,那就是对一堆的文件进行重命名。在Windows下有很多优良的软件能够帮忙咱们实现这个需要,而在Linux环境下,咱们能够简略敲一些代码就能够实现这个需要。
本文良许将介绍三种最根本的文件重命名办法,因为比拟根本,所以老司机能够到此为止。
1. rename命令
顾名思义,rename命令就是用来进行重命名文件名的。rename命令有十分弱小的性能,咱们能够用它来实现各种各样简单的文件名的批改。然而,本文只介绍它最最根本的性能,前期再更新rename其它弱小的重命名性能。rename的最根本的格局如下:
rename 源字符串 指标字符串 文件
其中,源字符串示意原文件名须要替换的字符串,能够是原文件名的全副或局部;指标字符串就是想要替换成的字符串;文件就是须要更改文件名的文件列表,能够是一个或多个。
现如果目录下有一堆 atb_mod_01.cpp,atb_mod_02.cpp,atb_mod_03.cpp,atb_mod_04.cpp
等模式的文件,咱们的需要是将文件名中的 mod
改成 adb
,那么实现这个需要的命令如下:
[alvin@VM_0_16_centos exp3]$ lsatb_mod_01.cpp atb_mod_02.cpp atb_mod_03.cpp atb_mod_04.cpp[alvin@VM_0_16_centos exp3]$ rename mod adb *[alvin@VM_0_16_centos exp3]$ lsatb_adb_01.cpp atb_adb_02.cpp atb_adb_03.cpp atb_adb_04.cpp
2. mv命令配合for循环形式
如果咱们当初有一堆 .txt
文件,咱们想将它们的后缀改成 .cpp
。先来看残缺的代码:
#!/bin/bashfor name in `ls *.txt`do mv $name ${name%.txt}.cppdone
咱们都晓得,在Linux里重命名是用 mv 命令,那批量重命名天然会想到用循环语句嵌套mv命令。
在这里,咱们用 ls *.txt
将当前目录下所有的txt文件全部列进去,而后一一放在name变量里去循环操作。
在循环体里,咱们应用mv命令进行重命名。这里咱们应用 ${name%.txt}
这种字符串解决形式,示意从name尾部开始删除与 .txt
匹配的最小局部,并返回残余局部。之后,再加上 .cpp
后缀。通过这种操作,咱们就能够将文件名后缀从.txt改为.cpp。最初咱们用mv命令将这个文件名真正改过来。
3. sed命令配合for循环形式
如果咱们当初有一堆文件,文件名格局是 test01.txt,test02.txt,test03.txt,test04.txt
也就是前半部分是英文,后半局部是数字。咱们当初想将文件名改成 test-01.txt
这种模式。这次,咱们用sed命令来实现这个需要。
咱们还是先来看看残缺的代码。
#!/bin/bashfor file in `ls *.txt`do newFile=`echo $file | sed 's/\([a-z]\+\)\([0-9]\+\)/\1-\2/'` mv $file $newFiledone
后面一样用 ls \*.txt
来获取所有的 .txt
文件。之后再用echo命令将其依次输入,作为sed命令的输出。
接下来,达到要害局部了。乍一看sed的命令可能有点可怕,但老司机早已司空见惯了。反引号里的内容其实是这样的根本构造:
s/ 原字符串 / 代替的字符串 /
这里咱们用到了分组匹配,也就是用括号依照肯定的正则表达式将原字符串进行分组,前面再用 \1,\2,\3……
来援用后面的分组,从而在代替的字符串里拼凑成相应的格局。
前文已讲述,原文件名是由前局部英文及后局部数字所形成的,英文能够用 [a-z]+
示意,数字能够用 [0-9]+
示意。留神不要遗记加号,示意后面字符的若干反复。而后,咱们用1、2别离援用后面的对应局部,再用横杆连起来,于是就成了这样:
s/([a-z]+)([0-9]+)/\1-\2/
因为在不同的Shell里,括号及加号可能会有不同的含意,所以后面要再加一个本义符,于是就成了后面所见到的样子。
再之后,同样应用mv命令实现重命名动作。
最初,最近很多小伙伴找我要Linux学习路线图,于是我依据本人的教训,利用业余时间熬夜肝了一个月,整顿了一份电子书。无论你是面试还是自我晋升,置信都会对你有帮忙!
收费送给大家,只求大家金指给我点个赞!
电子书 | Linux开发学习路线图
也心愿有小伙伴能退出我,把这份电子书做得更完满!
有播种?心愿老铁们来个三连击,给更多的人看到这篇文章
举荐浏览:
- 干货 | 程序员进阶架构师必备资源免费送
- 神器 | 反对搜寻的资源网站