簡體   English   中英

如何將變量分配給 bash 中同一目錄中文件的不同擴展名

[英]How to assign variable to different extension of files in same directory in bash

我有一個任務:

  1. 觀看視頻文件的文件夾(mp4、mov、mkv 等)
  2. 使用 ffmpeg 將視頻文件轉換為 HLS(480p、720p、1080p)
  3. 將這些文件移動到不同的文件夾
  4. 從監視文件夾中刪除原始文件
  5. 發送 email 說明以下視頻文件已轉碼

我想將每個.mp4 .mov.mkv作為 bash 中的變量處理,以便執行上述任務。 包含這些文件的文件夾位於

/mnt/volume1/videos

目錄架構

/mnt/volum1/videos/sample.mp4
/mnt/volum1/videos/sample.mov
/mnt/volum1/videos/sample.mkv

您可以依次將目錄中的每個 .mp4.mov 和 .mkv 文件放入具有如下循環的變量中:

cd /mnt/volum1/videos/
for curFile in *.mp4 *.mov *.mkv ; do
    echo $curFile
done

您可以使用以下變量替換刪除文件名的擴展名(文件名的最后一個“。”之后的所有內容):

${curfile%.*}

我不了解 HLS,但這里有一個簡單的 ffmpeg 示例: 如果您調用 ffmpeg 來制作 avi 文件,它將如下所示:

ffmpeg -i $curfile ${curfile%.*}.avi

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM