当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 3 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 一个解压压缩文件的小脚本和一个为照片添加exif信息的小脚本
帖子发表于 : 2009-09-11 21:51 
头像

注册: 2006-08-24 21:25
帖子: 256
送出感谢: 0 次
接收感谢: 0 次
好久没发新帖了,把自己常用的两个小脚本发下吧。

解压当前目录下的所有压缩文件,会将当前目录下的所有压缩文件解压到压缩文件名的目录下面,同时把所有压缩包放到rar 文件夹下面。没技术含量的,不过还算方便。
代码:
#!/bin/bash
#解压缩rar文件
if [ ! -d rar ]
then
mkdir -p rar
fi
for i in *
do
if [ -f "$i" ]
then
k=${i##*.}
j=${i%.*}
case $k in
   tar)
   mkdir -p "$j"
   mv "$i" "$j"/"$i"
   (cd "$j";tar xvf "$i";mv "$i" ../rar/"$i";cd ..)
;;
   gz)
      mkdir -p "$j"
   mv "$i" "$j"/"$i"
   (cd "$j";gzip -d "$i";mv "$i" ../rar/"$i";cd ..)
;;   
   tar\.gz|tgz|tar\.Z)
      mkdir -p "$j"
   mv "$i" "$j"/"$i"
   (cd "$j";tar zxvf "$i";mv "$i" ../rar/"$i";cd ..)
;;
   bz2|bz)
      mkdir -p "$j"
   mv "$i" "$j"/"$i"
   (cd "$j";bzip2 -d "$i";mv "$i" ../rar/"$i";cd ..)
;;
   tar\.bz2|tar\.bz)
      mkdir -p "$j"
   mv "$i" "$j"/"$i"
   (cd "$j";tar jxvf "$i";mv "$i" ../rar/"$i";cd ..)
;;
   Z)
      mkdir -p "$j"
   mv "$i" "$j"/"$i"
   (cd "$j";uncompress "$i";mv "$i" ../rar/"$i";cd ..)
;;
   
   zip)
      mkdir -p "$j"
   mv "$i" "$j"/"$i"
   (cd "$j";unzip "$i";mv "$i" ../rar/"$i";cd ..)
;;
   rar)
      mkdir -p "$j"
   mv "$i" "$j"/"$i"
   (cd "$j";rar x "$i";mv "$i" ../rar/"$i";cd ..)
;;
esac
fi
done



附件:
文件注释: 解压所有压缩文件
jy.tar.bz2 [441 Bytes]
被下载 11 次




一个为照片添加exif信息的小脚本。用的是exiv2来获取照片的exif信息,所以一定要装,还有就是字体的设置了。
比较适合的分辨率是2000x1500以上的,再小的图片可能效果不好,自己改下吧。
使用时后面带图片文件名就是修改单张图片。不带就是全部当前目录下的图片。

代码:
#!/bin/bash
#字体设置
result=EXIF_`date +%Y%m%d%H%M%S`
font="/usr/share/fonts/wenquanyi/wqy-zenhei/wqy-zenhei.ttc" #exif信息字体
drawtxt(){
#-------------------------------------------------
oldifs=$IFS
IFS="
"
exif_info=`exiv2 $1` 2>/dev/null
model=`echo "$exif_info"|grep "model"|awk -F":" '{print $2}'`
exposure=`echo "$exif_info"|grep "Exposure time"|awk -F":" '{print $2}'`
fnumber=`echo "$exif_info"|grep "Aperture    " |awk -F":" '{print $2}'`
date=`echo "$exif_info"|grep "timestamp"|awk -F" :" '{print $2}'`
size=`echo "$exif_info"|grep "Image size"|awk -F":" '{print $2}'`
px=`echo "$exif_info"|grep "Image size"|awk -F":" '{print $2}'|awk -F "x" '{print $1}'`
py=`echo "$exif_info"|grep "Image size"|awk -F":" '{print $2}'|awk -F "x" '{print $2}'`
focal=`echo "$exif_info"|grep "Focal length"|awk -F":" '{print $2}'`
#init-----------------------------------------------
[ -z "$model" ]&& exit
[ ! -d $result ]&& mkdir -p $result
echo "正在处理$1"
cp $1 $result/$1
cd $result
let "textsize=30+$py/200"
let "mask_y=35+$py/100"
convert -size "${px} x ${mask_y}" xc:"#ffffffc2" mask.png
text="  $model     $exposure  $fnumber  $focal     $size      $date "
echo $text
textl=`expr length "$text"`
let "textx=$px-$textl*$px/110"
let "texty=$mask_y-15" #exif信息左下角坐标

convert -font $font -fill "#111111" -pointsize $textsize -draw "text $textx,$texty '$text'"  mask.png mask.png
composite -gravity South mask.png $1 $1
rm mask.png
cd ..
}
if [ $1 ]
then
drawtxt $1
else
for i in *
do
if [ -f "$i" ]
then
drawtxt $i
fi
done
fi
IFS=$oldifs



附件:
文件注释: 为照片添加exif信息
exif.tar.bz2 [929 Bytes]
被下载 12 次


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 一个解压压缩文件的小脚本和一个为照片添加exif信息的小脚本
帖子发表于 : 2009-09-13 12:01 
头像

注册: 2006-08-24 21:25
帖子: 256
送出感谢: 0 次
接收感谢: 0 次
自己沙发自己坐,竟然一个回复都没有,上张添加exif的效果图

附件:
文件注释: 女儿上午去公园了。可惜脸上摔伤了,不好看
IMG_0012.JPG
IMG_0012.JPG [ 521.05 KiB | 被浏览 402 次 ]



页首
 用户资料  
 
3 楼 
 文章标题 : Re: 一个解压压缩文件的小脚本和一个为照片添加exif信息的小脚本
帖子发表于 : 2009-09-13 16:15 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
因为你的太复杂了。我这里都有,廖廖几句。


_________________
● 鸣学


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 3 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

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


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

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

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