分页: 1 / 1

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

发表于 : 2008-10-29 20:44
stoneduke
比方说目录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

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

发表于 : 2008-10-29 23:27
c\nc
要用递归

代码: 全选

func()
{
	for d in "$*/*"; do
		if [ -d "$d" ]; then
			func "$d"
		else
			#处理图片
		fi
}
func "/images"

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

发表于 : 2008-10-30 10:30
cnkilior
for i in $(ls);
这种结构是不推荐的,如果文件名中有空格就出问题了。

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

发表于 : 2008-10-30 10:31
bones7456
find . -name "i*.jpg" -exec XXXXX 如何?

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

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

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

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