Perl经典代码之rename
时间:2008-10-05 来源:con
Larry Wall的rename脚本, 只用了个位行数的代码就构造出一个功能超强的批量文件重命名工具:
#!/usr/bin/perl -w
#如果没有给出要处理的文件名则从标准输入读入
for (@ARGV) { |
rename脚本的经典实例示范:
% rename 's/\.orig$//' *.orig #移除文件末尾的.orig
% rename "tr/A-Z/a-z/ unless /^Make/" * #所有非Make打头的文件名大写转为小写
% rename '$_ .= ".bad"' *.f #每个*.f文件后面追加一个.bad
% rename 'print "$_: "; s/foo/bar/ if <STDIN> =~ /^y/i' * #回显每个待处理的文件名, 等待输入, 如果用户输入以y或Y打头, 把文件名中的foo替换成bar
% find /tmp -name "*~" -print | rename 's/^(.+)~$/.#$1/' #把 /tmp目录里面每个文件名末尾有~的文件名改成以.#开头 |