Как точно сопоставить точное расширение файла .en.html с регулярным выражением или другим способом в скрипте bash

Как точно сопоставить точное расширение файла .en.html с регулярным выражением или другим способом в скрипте bash

Я пытаюсь сопоставить имя файла, которое заканчивается именно на .en.html, используя регулярное выражение, например .en.html$ Для примера это работает z_.en.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/очень полезен для отладки проблем с регулярными выражениями.

Связанный контент