但是这个剧有很多集,不想一个个改,太累了耶,想弄个脚本来批量来做,求前辈指导。

发现字幕都是 01.en.ass 01.tc.ass 02.en.ass 02.tc.ass ...24.en.ass 24.tc.ass之类的文件。
代码: 全选
#!/bin/bash
for file0 in *.chs.srt; do
(( l=${#file0}-8))
file2=${file0:0:l}
sed 's/[[:space:]]/\#/g' "$file0" | sed 's/\#/\ /g' | \
awk '{if(NF>0){for(i=1;i<NF;i++){printf("%s ",$i)};printf("%s\n",$NF)}else {printf("\n")}}' | \
awk -vRS="" -vFS='\n' '{for(i=2;i<=NF;i++)print $i};{printf("\n")}' > "$file0.srt0"
for file1 in *.eng.srt; do
(( l=${#file1}-8))
file3=${file1:0:l}
if [ "$file2" = "$file3" ]; then
sed 's/[[:space:]]/\#/g' "$file1" | sed 's/\#/\ /g' | \
awk '{if(NF>0){for(i=1;i<NF;i++){printf("%s ",$i)};printf("%s\n",$NF)}else {printf("\n")}}' | \
awk -vRS="" -vFS='\n' '{for(i=2;i<=NF;i++)print $i};{printf("\n")}' > "$file1.srt1"
diff "$file0.srt0" "$file1.srt1" -D fanhe | grep -v '^\#.*' > "$file2.srt"
fi
done
done
rm -f *.srt0 *.srt1
echo "结束。"
exit 0
在论坛里找到的一个帖子,但不知如何更改才能符合批量更改的要求,代码盲
