首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不区分大小写的bash字符串替换

不区分大小写的bash字符串替换
EN

Unix & Linux用户
提问于 2019-07-05 07:12:12
回答 1查看 2K关注 0票数 2

我正试图制作一个将两个字幕合并的脚本。

代码语言:javascript
复制
file.srt
file.forced.srt
file2.srt
file2.Forced.srt

我有一个不区分大小写匹配两个强制字幕。

代码语言:javascript
复制
shopt -s extglob
shopt -s nocaseglob

for file in "${1%/}/"*forced.srt; do
   echo File: "$file"
done

我有以下代码可以从文件名中删除强制字符串,因此我可以在脚本中使用匹配的文件。

代码语言:javascript
复制
subs=${file//.Forced/}

如何从变量(不区分大小写)中删除此字符串forced

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2019-07-05 07:33:32

您希望这个nocasematchshell选项在这里,而不是(只是) nocaseglob

如果启用了nocasematch shell选项(请参阅Shopt Builtin中对shopt的描述),则将执行匹配,而不考虑字母字符的情况。

nocaseglob只适用于真正的文件名扩展(就像您在for循环中使用的那样),但不适用于发生模式匹配的其他地方。对于您的用例,您实际上需要同时启用这两个功能,以便文件名展开和模式匹配都能完成。

对于这一个位置中的这两个字符,您可以使用 [Ff]要匹配Ff

票数 5
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/528482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档