.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"
最初の悪夢は出力、2番目は入力
このファイルを入手しました
nightmare1-001.mkv
nightmare1-002.mkv
...
どうやって分割できるかを理解しようとします全て.mkvファイルを1GB単位で分割して、
nightmare1-001.mkv
nightmare1-002.mkv
...
nightmare2-001.mkv
nightmare2-002.mkv
...
nightmare3-001.mkv
nightmare3-002.mkv
...
すべてのナイトメア ムービーは同じフォルダーにあります。
コマンドをどのように書き換えればよいでしょうか? 問題は、入力として単一の mkv ファイルがあり、出力としてファイルに書き込むのですが、mkv ファイルが配置されているフォルダー パスを入力として設定し、フォルダー内に分割された新しい mkv ファイルをすべて書き込みたいということです。
答え1
for
このタスクを解決するには、Bash ループを使用できます。
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")
パスなしのファイル名のみを返します。つまり、nightmare-i.mkv
なので、出力オプションの値は のようになります./split/nightmare-i.mkv
。