我正在尝试制作一个将合并两个字幕的脚本。
file.srt
file.forced.srt
file2.srt
file2.Forced.srt
我对匹配两个强制字幕不区分大小写。
shopt -s extglob
shopt -s nocaseglob
for file in "${1%/}/"*forced.srt; do
echo File: "$file"
done
我有这段代码可以从文件名中删除强制字符串,所以我得到了要在我的脚本中使用的匹配文件
subs=${file//.Forced/}
如何forced
从变量中删除此字符串,不区分大小写?
您需要这里的
nocasematch
shell 选项,而不是(只是)nocaseglob
:nocaseglob
仅用于真正的文件名扩展(就像您在 for 循环中使用的那样),但不适用于发生模式匹配的其他地方。对于您的用例,您实际上需要同时启用两者,以便文件名扩展和模式匹配都可以做到。只有在那个位置的这两个字符,您可以使用
[Ff]
来匹配两者F
和f
那里。