比方说目录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
请教如何用循环语句批量处理多个目录下的图片
-
- 帖子: 2
- 注册时间: 2008-10-29 20:29
- c\nc
- 帖子: 231
- 注册时间: 2007-12-25 12:51
Re: 请教如何用循环语句批量处理多个目录下的图片
要用递归
代码: 全选
func()
{
for d in "$*/*"; do
if [ -d "$d" ]; then
func "$d"
else
#处理图片
fi
}
func "/images"
- cnkilior
- 论坛版主
- 帖子: 4984
- 注册时间: 2007-08-05 17:40
Re: 请教如何用循环语句批量处理多个目录下的图片
for i in $(ls);
这种结构是不推荐的,如果文件名中有空格就出问题了。
这种结构是不推荐的,如果文件名中有空格就出问题了。
- bones7456
- 帖子: 8495
- 注册时间: 2006-04-12 20:05
- 来自: 杭州
- 联系:
-
- 帖子: 2
- 注册时间: 2008-10-29 20:29
Re: 请教如何用循环语句批量处理多个目录下的图片
终于又能上网来,多谢指教,我接着学习,还没有接触递归啊。
因为图片的是批量截取的,所以文件名比较规整,就没有遇到空格的问题,如果不用for语句,那可以用什么呢?直接用find然后加命令?
因为图片的是批量截取的,所以文件名比较规整,就没有遇到空格的问题,如果不用for语句,那可以用什么呢?直接用find然后加命令?
- c\nc
- 帖子: 231
- 注册时间: 2007-12-25 12:51
Re: 请教如何用循环语句批量处理多个目录下的图片
for file in *; 是没问题滴。stoneduke 写了:终于又能上网来,多谢指教,我接着学习,还没有接触递归啊。
因为图片的是批量截取的,所以文件名比较规整,就没有遇到空格的问题,如果不用for语句,那可以用什么呢?直接用find然后加命令?