我正试图制作一个将两个字幕合并的脚本。
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?
发布于 2019-07-05 07:33:32
您希望这个nocasematchshell选项在这里,而不是(只是) nocaseglob:
如果启用了
nocasematchshell选项(请参阅Shopt Builtin中对shopt的描述),则将执行匹配,而不考虑字母字符的情况。
nocaseglob只适用于真正的文件名扩展(就像您在for循环中使用的那样),但不适用于发生模式匹配的其他地方。对于您的用例,您实际上需要同时启用这两个功能,以便文件名展开和模式匹配都能完成。
对于这一个位置中的这两个字符,您可以使用 [Ff]要匹配F和f。
https://unix.stackexchange.com/questions/528482
复制相似问题