1. 程式人生 > >shell中的for迴圈遍歷目錄

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檢視