我有很多 .mkv 文件
nightmare1.mkv
nightmare2.mkv
nightmare3.mkv
...
我從 Ubuntu 終端使用 mkvmerge 來分割單身的使用此命令建立文件
mkvmerge --split 1G --compression 0:none --compression 1:none --clusters-in-meta-seek -o "nightmare1.mkv" "nightmare1.mkv"
第一個惡夢是輸出,第二個是輸入
我得到這個文件
nightmare1-001.mkv
nightmare1-002.mkv
...
我試著去理解我該如何分開全部1gb 大小的 .mkv 文件,因為我想得到
nightmare1-001.mkv
nightmare1-002.mkv
...
nightmare2-001.mkv
nightmare2-002.mkv
...
nightmare3-001.mkv
nightmare3-002.mkv
...
所有噩夢電影都在同一個資料夾中。
我該如何重寫指令?問題是我有單個 mkv 文件作為輸入,並將輸出寫入文件,但我想將文件夾路徑設置為 mkv 文件所在的輸入,並在文件夾內寫入所有新分割的 mkv 文件。
答案1
您可以使用 Bashfor
循環來解決此任務:
for file in ./source/*mkv; \
do \
echo mkvmerge --split 1G --compression 0:none --compression 1:none \
--clusters-in-meta-seek -o "./split/$(basename "$file")" "$file"; \
done
- 複製並貼上終端機中的所有行並將它們作為單一命令執行。
- 一旦您對循環的試運行輸出感到滿意,刪除
echo
命令來進行實際操作。
上面的範例中./source/
是儲存原始檔案的目錄的相對路徑。分別./split/
是目標路徑並且必須預先建立。
對於每次迭代,變數的值$file
將如下所示./source/nightmare-i.mkv
。命令替換$(basename "$file")
將僅返回不含路徑的檔案名稱 -ie nightmare-i.mkv
,因此輸出選項的值將如下所示./split/nightmare-i.mkv
。