shell中的for循环遍历目录

1 目录结构说明

  1. a. 文件名 convert_video_to_images.sh
  2. b. /User/document/list目录下有A1目录
  3. c. A1目录下有文件v_Skiing_g01_c01.avi、v_Skiing_g01_c02.avi、v_Skijet_g01_c02.avi、v_Skijet_g01_c03.avi

2 测试代码

for folder in $1/*
do
    echo $folder
    echo "*********************"
    for file in "$folder"/*.avi
    do
        if [[ ! -d "${file[@]%.avi}" ]]; then
            echo "-----------------"
            echo ${file[@]%.avi}
            #mkdir -p "${file[@]%.avi}"
        fi
        #ffmpeg -i "$file" -vf fps=$2 "${file[@]%.avi}"/%05d.jpg
    done
done

3 说明与注解

  1. 在终端输入(sudo) ./convert_video_to_images.sh /Users/document/list
  2. 使用(sudo) ./convert_video_to_images.sh ./list 失败,脚本不支持相对路径
  3. 输出如下,[@]%具有通配符功能
    /Users/document/list/A1
    *********************
    -----------------
    /Users/document/list/A1/v_Skiing_g01_c01
    -----------------
    /Users/document/list/A1/v_Skiing_g01_c02
    -----------------
    /Users/document/list/A1/v_Skijet_g01_c02
    -----------------
   /Users/document/list/A1/v_Skijet_g01_c03

4 拓展应用

  1. 将#注释部分去掉,安装ffmpeg库,在终端输入(sudo) ./convert_video_to_images.sh /Users/document/list 5
  2. ffmpeg库使用,使用命令ffmpeg --help查看

你可能感兴趣的:(shell)