Bash shell linux如何检测扩展文件的名称(flv)(屁股)

时间:2014-09-29 10:55:42

标签: linux bash shell

我想创建一个脚本来自动复用视频(flv)字幕(.ass)而无需用户干预

为例 该脚本检测两个具有相同名称(.flv)(。。)

的文件
~/Vidéos/vidéo numbre 1.mp4
~/Vidéos/vidéo numéro 1.ass
~/Vidéos/vidéo numbre 2.mp4
~/Vidéos/vidéo numéro 2.ass
~/Vidéos/vidéo numbre x.ass
~/Vidéos/vidéo numbre x.mp4
~/Vidéos/vidéo numbre zz.mp4
~/Vidéos/vidéo numbre xy.ass

得到这个

~/Vidéos/vidéo numbre 1.mkv
~/Vidéos/vidéo numbre 2.mkv
~/Vidéos/vidéo numbre x.mkv
~/Vidéos/vidéo numbre zz.mkv

...

如何使用扩展名.flv .ass使用相同的脚本文件夹和带有我的命令行的多路复用器来查找文件的名称

ffmpeg -i "${name}.flv" -vcodec copy -acodec copy mkvtemp.mkv
mkvmerge -v -o "${name}.mkv" --default-track 0 --language 0:fre "${name}.ass" mkvtemp.mkv

tx为您提供帮助

2 个答案:

答案 0 :(得分:0)

for name in `ls | rev | cut -f2- -d. | rev | sort | uniq`; do
  ffmpeg -i "${name}.flv" -vcodec copy -acodec copy mkvtemp.mkv
  mkvmerge -v -o "${name}.mkv" --default-track 0 --language 0:fre "${name}.ass" mkvtemp.mkv
done

ls替换为您用于输出文件列表的任何内容。

答案 1 :(得分:0)

试试这个

find . -name "*.mp4" | while read line
do
   name=`basename "$line" .mp4`
   ffmpeg -i "${name}".flv -vcodec copy -acodec copy mkvtemp.mkv
   mkvmerge -v -o "${name}".mkv --default-track 0 --language 0:fre "${name}".ass mkvtemp.mkv
done

这应该适用于包含空格的文件名。