右键脚本:exif-filename.pl

sh/bash/dash/ksh/zsh等Shell脚本
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

右键脚本:exif-filename.pl

#1

帖子 eexpress » 2009-08-26 15:17

代码: 全选

☎ cat exif-filename.pl 
#!/usr/bin/perl

use File::Basename;
$dir=dirname $ARGV[0];
chdir $dir;

my @f=glob "*.JPG *.jpg";
foreach (@f){
my $DateTimeOriginal=`exif -t 0x9003 \'$_\'|grep "Value:"`;
chomp $DateTimeOriginal;
my @s=split " ", $DateTimeOriginal;
$s[1]=~s/:/-/g;
$n="$s[1]_$s[2]";

$nn=$n;
my $loop=0;
while(-e "$nn.jpg"){
$nn="$n_$loop";
$loop++;
}
$n=$nn;

print "$_ => $n.jpg\n";
rename "$_","$n.jpg";
}
● 鸣学
头像
c\nc
帖子: 231
注册时间: 2007-12-25 12:51

Re: 右键脚本:exif-filename.pl

#2

帖子 c\nc » 2009-08-26 23:10

perl 控? 用 bash 调用 identify ,用这个 1/3 的脚本好像就够了。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 右键脚本:exif-filename.pl

#3

帖子 eexpress » 2009-08-26 23:28

拉,吹下算了
:em04
● 鸣学
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

Re: 右键脚本:exif-filename.pl

#4

帖子 xiooli » 2009-08-26 23:33

火星文,看不懂 :em20
头像
hellojinjie
帖子: 1150
注册时间: 2007-09-14 21:03
来自: 浙江

Re: 右键脚本:exif-filename.pl

#5

帖子 hellojinjie » 2009-08-26 23:36

perl 的很难懂的...
Say hello to everyday!
头像
wangdu2002
帖子: 13284
注册时间: 2008-12-13 19:39
来自: 物华天宝人杰地灵

Re: 右键脚本:exif-filename.pl

#6

帖子 wangdu2002 » 2009-08-26 23:38

看不明白,这次ee非水贴被水了。 :em03
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!
头像
c\nc
帖子: 231
注册时间: 2007-12-25 12:51

Re: 右键脚本:exif-filename.pl

#8

帖子 c\nc » 2009-08-27 12:23

阿姨还不服气

代码: 全选

#!/bin/bash
cd "${*%/*}"
IFS=$'\n' array=(`identify -format "%f@%[exif:DateTimeOriginal]\n" *.jp*g`)
for x in ${array[@]}; do
	fn="${x%@*}"
	exif="${x##*@}"
	exif="${exif//:/-}"
	mv "$fn" "${exif// /_}.${fn##*.}"
done
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 右键脚本:exif-filename.pl

#9

帖子 eexpress » 2009-08-27 12:30

因为你没看懂我的pl啊。 :em04 你少了功能的。
只是操作了文字部分,而且bash的文字处理,和pl比,不是找死嘛。
● 鸣学
头像
c\nc
帖子: 231
注册时间: 2007-12-25 12:51

Re: 右键脚本:exif-filename.pl

#10

帖子 c\nc » 2009-08-27 12:31

少了啥? :em06
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 右键脚本:exif-filename.pl

#11

帖子 eexpress » 2009-08-27 12:33

晕。你一行一行看,一段一段看,相同功能部分,肯定是perl的简单。不同的部分,就是你少的啊。
● 鸣学
头像
c\nc
帖子: 231
注册时间: 2007-12-25 12:51

Re: 右键脚本:exif-filename.pl

#12

帖子 c\nc » 2009-08-27 12:33

我不懂perl,以上就是猜的
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 右键脚本:exif-filename.pl

#13

帖子 eexpress » 2009-08-27 12:43

好罗。告诉你,你的,一行都省不了。中间最长的一段,是自动递增后缀的,防止同名覆盖,那print的,你应该懂吧。你这就是组合了2个地方,2行变1行。

其实,优点是这个。bash很多操作,转义非常晦涩麻烦,而perl很少需要转义,因为正则就是他的基础。而且,一次正则后,perl有巨多的中间变量,可以直接调用,比如正则前的部分,后面的部分,比较的部分。所以说字符处理,不提bash。
● 鸣学
头像
c\nc
帖子: 231
注册时间: 2007-12-25 12:51

Re: 右键脚本:exif-filename.pl

#14

帖子 c\nc » 2009-08-27 12:47

明白了 :em20
我这个也能凑合用,哪找自己拍的两张照片,连时间秒数都一样的……
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 右键脚本:exif-filename.pl

#15

帖子 eexpress » 2009-08-27 12:48

是没exif信息的时候。
呵呵。说明你经验少啊。
● 鸣学
回复