Linux批量修改文件名

| Comments

五月不努力,六月徒伤悲。再不更新文章,博客就要荒芜了。


rename

Linux下有一个程序叫rename可以用于修改文件名,它实际上是一个perl脚本,只要系统上有perl解释器就可以使用。

用法:

1
2
3
4
5
man rename
rename 's/AA/aa/' abAAc.txt  # 将文件名中AA替换为aa
rename 's/.html/.php/' *.html  #替换后缀
rename 's/$/.txt/' * #添加后缀
rename 'y/A-Z/a-z/' * #大写文件名转换为小写

rename还可以配合find命令修改特定文件的文件名。

1
find path -type f | xargs rename 's/[:*?<>|]/-/g'

shell & awk

1
2
3
4
for basename in `ls *.f90 | awk -F'.' "{print $1}"`
do
    mv $basename.f90 $basename.F
done

Comments