从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