请教如何用循环语句批量处理多个目录下的图片

sh/bash/dash/ksh/zsh等Shell脚本
回复
stoneduke
帖子: 2
注册时间: 2008-10-29 20:29

请教如何用循环语句批量处理多个目录下的图片

#1

帖子 stoneduke » 2008-10-29 20:44

比方说目录image下有数个依次命名的子目录:Dec01,Dec02,Dec03等等,每个子目录下有若干图片,也都是依次命名的,如Dec01/image01.jpg,image02.jpg等等。
想用个循环语句来批量转换这些图片,可是现在只知道循环条件中用sed ‘i/\,jpg’可以查找本目录下所有i打头的图片,不知道怎么进每个目录找图片。
我用来转换单个目录下的所有图片的命令,请牛人们看看:

for f in `ls image | sed 'i/\.jpg//'`;
do
convert -resize 256x128! -depth 8 image/$f.jpg pgm/$f.pgm
done
头像
c\nc
帖子: 231
注册时间: 2007-12-25 12:51

Re: 请教如何用循环语句批量处理多个目录下的图片

#2

帖子 c\nc » 2008-10-29 23:27

要用递归

代码: 全选

func()
{
	for d in "$*/*"; do
		if [ -d "$d" ]; then
			func "$d"
		else
			#处理图片
		fi
}
func "/images"
头像
cnkilior
论坛版主
帖子: 4984
注册时间: 2007-08-05 17:40

Re: 请教如何用循环语句批量处理多个目录下的图片

#3

帖子 cnkilior » 2008-10-30 10:30

for i in $(ls);
这种结构是不推荐的,如果文件名中有空格就出问题了。
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

Re: 请教如何用循环语句批量处理多个目录下的图片

#4

帖子 bones7456 » 2008-10-30 10:31

find . -name "i*.jpg" -exec XXXXX 如何?
关注我的blog: ε==3
stoneduke
帖子: 2
注册时间: 2008-10-29 20:29

Re: 请教如何用循环语句批量处理多个目录下的图片

#5

帖子 stoneduke » 2008-11-04 20:27

终于又能上网来,多谢指教,我接着学习,还没有接触递归啊。
因为图片的是批量截取的,所以文件名比较规整,就没有遇到空格的问题,如果不用for语句,那可以用什么呢?直接用find然后加命令?
头像
c\nc
帖子: 231
注册时间: 2007-12-25 12:51

Re: 请教如何用循环语句批量处理多个目录下的图片

#6

帖子 c\nc » 2008-11-04 23:07

stoneduke 写了:终于又能上网来,多谢指教,我接着学习,还没有接触递归啊。
因为图片的是批量截取的,所以文件名比较规整,就没有遇到空格的问题,如果不用for语句,那可以用什么呢?直接用find然后加命令?
for file in *; 是没问题滴。
回复