我正在尝试制作一个将两个字幕合并的脚本。
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
:
如果启用了
nocasematch
shell选项(请参见The Shopt Builtin中的shopt的说明),则执行匹配时将不考虑字母字符的大小写。
nocaseglob
仅用于真正的文件名扩展(如您在for循环中使用的扩展名),但不适用于发生模式匹配的其他地方。对于您的用例,您实际上需要同时启用它们,以便文件名扩展和模式匹配都可以启用它。
对于只在一个地方这两个字符,你可以使用 [Ff]
同时匹配F
和f
那里。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句