我正在尝试制作一个合并两个字幕的脚本。
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
从我的变量中删除这个字符串,不区分大小写?
答案1
你要外壳nocasematch
选项在这里,而不是(仅仅)nocaseglob
:
如果
nocasematch
shell选项(参见shopt中的描述内置商店) 启用时,执行匹配时不考虑字母字符的大小写。
nocaseglob
仅适用于真正的文件名扩展(就像您在 for 循环中使用的那样),但不适用于发生模式匹配的其他地方。对于您实际需要的用例两个都启用,以便文件名扩展和模式匹配都可以完成。
仅针对那一处的两个角色,您可以使用 [Ff]
匹配两者F
和f
那里。