Linux/MacOS 下字幕批量整理

Linux 2022-01-09

看美剧的时候下字幕经常与视频文件本身名字不匹配,所以总是需要修改一大堆字幕的文件名,如果在Linux或macOS下,这个问题就很好解决了。
示例:将当前文件夹中的ass字幕文件名中的720p.BluRay.x264-SiNNERS批量重命名为1080p.BluRay.x264-CiNEFiLE。
方法一:

rename 's/720p.BluRay.x264-SiNNERS/1080p.BluRay.x264-CiNEFiLE.zh/' *.ass

方法二:

for i in {1..9}; do TARGET=(*E0${i}*.mkv) ; mv *E0${i}*.ass "${TARGET%mkv}zh.ass" ; done
for i in {10..15}; do TARGET=(*E${i}*.mkv) ; mv *E${i}*.ass "${TARGET%mkv}zh.ass" ; done

方法三:

for oldass in `ls *.ass` ;
do
newass=`echo $oldass | sed 's/720p.BluRay.x264-SiNNERS/1080p.BluRay.x264-CiNEFiLE.zh/'`
mv $oldass $newass
done

macOS中默认没有rename,可通过brew安装rename。方法二可直接将所有字幕修改为视频同名文件,例如视频文件名为***E***.mkv,字幕修改为***E***.ass,注意视频与字幕文件的文件名匹配。