七月 10, 2006

Rename: jpg2jpeg

Fedora Core 5不喜欢jpg这个后缀,认为存在安全隐患,所以Gnome程序都不把jpg文件当成是图片,没有关联任何应用程序,而且Nautilus不会显示预览,gthumb里面也不会看到,除非把后缀名改为jpeg。然而,我的柯达导入的照片全部是以jpg作为后缀名的,只好写了一个Perl脚本,完成从jpg到jpeg的重命名工作。

#!/usr/bin/perl
use strict;
use warnings;
use File::Find;

my @dir;

push @dir, '.';
for my $additional_directory (@ARGV) {
if (-e $additional_directory and -d _) {
push @dir, $additional_directory;
}
else {
warn "$additional_directory not exist or not a directory, skip.\n";
}
}

find(\&jpg2jpeg, @dir);

sub jpg2jpeg {
if (/(.+)\.jpg$/i) {
my $filename = "$File::Find::dir/$1.jpeg";
print "rename $File::Find::name to $filename ...\n";
rename $File::Find::name, $filename;
}
}

4 条评论:

时间 9:19 下午 , Anonymous 匿名 说...

应该可以直接用awk的语法调用rn命令进行批量改名。不用这么麻烦把?xl

 
时间 11:18 上午 , Anonymous tchaikov 说...

我的 Debian 上装的 Perl 自己就带了一个 rename 脚本。casper 你不妨比较一下?
http://packages.debian.org/cgi-bin/search_contents.pl?word=rename&searchmode=searchfiles&case=insensitive&version=stable&arch=i386

 
时间 5:31 下午 , Anonymous 匿名 说...

bash$ rename .jpeg .jpg *.jpeg */*.jpeg

 
时间 9:08 下午 , Blogger netcasper 说...

rename确实不错,以前没用过。递归稍微麻烦点,不过结合使用find和xargs也可以搞定,再弄个alias,也不用敲几个字符。

多谢多谢,今天又涨经验值了。

 

发表评论

指向此帖子的链接:

创建链接

<< 主页