如何在 Bash 脚本中使用正则表达式或其他方式精确匹配精确的文件扩展名 .en.html

如何在 Bash 脚本中使用正则表达式或其他方式精确匹配精确的文件扩展名 .en.html

我正在尝试使用正则表达式(如 .en.html$)匹配以 .en.html 结尾的文件名,例如 z_.en.html,但它适用于 a.len.html,但不适用于 a.len.html - 它与 .len.html 匹配

有什么帮助吗?

答案1

您需要转义.,它在正则表达式中被视为通配符:

~$ [[  z_.en.html =~ \.en\.html$ ]] && echo match || echo no_match
match
~$ [[  a.len.html =~ \.en\.html$ ]] && echo match || echo no_match
no_match

还,https://regex101.com/对于调试正则表达式问题非常有用。

相关内容