当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 20 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : 右键脚本:exif-filename.pl
帖子发表于 : 2009-08-26 15:17 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
代码:
☎ 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";
}


_________________
● 鸣学


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 右键脚本:exif-filename.pl
帖子发表于 : 2009-08-26 23:10 
头像

注册: 2007-12-25 12:51
帖子: 231
送出感谢: 0 次
接收感谢: 0 次
perl 控? 用 bash 调用 identify ,用这个 1/3 的脚本好像就够了。


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 右键脚本:exif-filename.pl
帖子发表于 : 2009-08-26 23:28 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
拉,吹下算了
:em04


_________________
● 鸣学


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 右键脚本:exif-filename.pl
帖子发表于 : 2009-08-26 23:33 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
火星文,看不懂 :em20


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 右键脚本:exif-filename.pl
帖子发表于 : 2009-08-26 23:36 
头像

注册: 2007-09-14 21:03
帖子: 1143
地址: 浙江
送出感谢: 1
接收感谢: 1
perl 的很难懂的...


_________________
Say hello to everyday!


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 右键脚本:exif-filename.pl
帖子发表于 : 2009-08-26 23:38 
头像

注册: 2008-12-13 19:39
帖子: 13284
地址: 物华天宝人杰地灵
送出感谢: 1
接收感谢: 6
看不明白,这次ee非水贴被水了。 :em03


_________________
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 右键脚本:exif-filename.pl
帖子发表于 : 2009-08-26 23:45 
头像

注册: 2008-04-26 12:41
帖子: 10974
送出感谢: 11
接收感谢: 38
干嘛子用的? :em20


_________________
[新手必读]wubi安装常见问题(FAQ)
[分享]装双系统的同学必看——Windows与Linux系统共享交换分区的方法
kde下唯美的暗黑内透主题(无需编译)
无穷老机上的Trinity Desktop Environment


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 右键脚本:exif-filename.pl
帖子发表于 : 2009-08-27 12:23 
头像

注册: 2007-12-25 12:51
帖子: 231
送出感谢: 0 次
接收感谢: 0 次
阿姨还不服气
代码:
#!/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


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 右键脚本:exif-filename.pl
帖子发表于 : 2009-08-27 12:30 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
因为你没看懂我的pl啊。 :em04 你少了功能的。
只是操作了文字部分,而且bash的文字处理,和pl比,不是找死嘛。


_________________
● 鸣学


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 右键脚本:exif-filename.pl
帖子发表于 : 2009-08-27 12:31 
头像

注册: 2007-12-25 12:51
帖子: 231
送出感谢: 0 次
接收感谢: 0 次
少了啥? :em06


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 右键脚本:exif-filename.pl
帖子发表于 : 2009-08-27 12:33 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
晕。你一行一行看,一段一段看,相同功能部分,肯定是perl的简单。不同的部分,就是你少的啊。


_________________
● 鸣学


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 右键脚本:exif-filename.pl
帖子发表于 : 2009-08-27 12:33 
头像

注册: 2007-12-25 12:51
帖子: 231
送出感谢: 0 次
接收感谢: 0 次
我不懂perl,以上就是猜的


页首
 用户资料  
 
13 楼 
 文章标题 : Re: 右键脚本:exif-filename.pl
帖子发表于 : 2009-08-27 12:43 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
好罗。告诉你,你的,一行都省不了。中间最长的一段,是自动递增后缀的,防止同名覆盖,那print的,你应该懂吧。你这就是组合了2个地方,2行变1行。

其实,优点是这个。bash很多操作,转义非常晦涩麻烦,而perl很少需要转义,因为正则就是他的基础。而且,一次正则后,perl有巨多的中间变量,可以直接调用,比如正则前的部分,后面的部分,比较的部分。所以说字符处理,不提bash。


_________________
● 鸣学


页首
 用户资料  
 
14 楼 
 文章标题 : Re: 右键脚本:exif-filename.pl
帖子发表于 : 2009-08-27 12:47 
头像

注册: 2007-12-25 12:51
帖子: 231
送出感谢: 0 次
接收感谢: 0 次
明白了 :em20
我这个也能凑合用,哪找自己拍的两张照片,连时间秒数都一样的……


页首
 用户资料  
 
15 楼 
 文章标题 : Re: 右键脚本:exif-filename.pl
帖子发表于 : 2009-08-27 12:48 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
是没exif信息的时候。
呵呵。说明你经验少啊。


_________________
● 鸣学


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 20 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译