用AWK实现批量命名修改

阅读更多

从VeryCD下了一堆电子书,但是其中有些书的命名有点问题,比如单引号被写成“'”。

./[UNIX系统管理高手].O'Reilly.-.Advanced.Perl.Programming.pdf
./[UNIX系统管理高手].O'Reilly.-.Beginning.Perl.For.Bioinformatics.pdf
./[UNIX系统管理高手].O'Reilly.-.Cgi.Programming.With.Perl.pdf
./[UNIX系统管理高手].O'Reilly.-.Classic.Shell.Scripting.Feb.2005-DDU.pdf
./[UNIX系统管理高手].O'Reilly.-.Database.Programming,.John.Wiley.&.Sons.chm
./[UNIX系统管理高手].O'Reilly.-.Embedding.Perl.in.HTML.with.Mason.chm
./[UNIX系统管理高手].O'Reilly.-.Learning.Perl.2nd.pdf
./[UNIX系统管理高手].O'Reilly.-.Learning.Perl.3rd.Edition.pdf
./[UNIX系统管理高手].O'Reilly.-.Learning.Perl.Objects,.References.and.Modules.chm
./[UNIX系统管理高手].O'Reilly.-.learning.perl.the.hard.way.pdf
./[UNIX系统管理高手].O'Reilly.-.Learning.Perl.Tk.1999.pdf
./[UNIX系统管理高手].O'Reilly.-.Learning.the.Unix.OS.chm
./[UNIX系统管理高手].O'Reilly.-.Managing.NFS.and.NIS.2nd.Ed.pdf
./[UNIX系统管理高手].O'Reilly.-.Managing.Projects.with.GNU.make.(2004),.3Ed.DDU.chm
./[UNIX系统管理高手].O'Reilly.-.Mastering.Algorithms.With.Perl.1999.pdf
./[UNIX系统管理高手].O'Reilly.-.Mastering.Perl.For.Bioinformatics.chm
./[UNIX系统管理高手].O'Reilly.-.Mastering.Perl.for.Bioinformatics.pdf

一个个改太麻烦了,所以写了几个命令拼凑一下。先用find把文件名选出来。然后再用AWK对目标文件名进行处理,最后调用mv命令改名。

find -name '*'*' > filelist
awk 'BEGIN { FS="/" } { org=$2; gsub("'", "'/''", $2); org="/"" org "/""; $2="/"" $2 "/""; system("mv " org " " $2); }' filelist

你可能感兴趣的:(用AWK实现批量命名修改)