So können Sie die exakte Dateierweiterung .en.html mit regulären Ausdrücken oder auf andere Weise im Bash-Skript exakt abgleichen

So können Sie die exakte Dateierweiterung .en.html mit regulären Ausdrücken oder auf andere Weise im Bash-Skript exakt abgleichen

Ich versuche, Dateinamen abzugleichen, die genau mit .en.html enden, indem ich reguläre Ausdrücke wie .en.html$ verwende. Das funktioniert beispielsweise mit z_.en.html, aber nicht mit a.len.html – es stimmt mit .len.html überein.

Irgendeine Hilfe?

Antwort1

Sie müssen das maskieren ., das im regulären Ausdruck als Platzhalter betrachtet wird:

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

Auch,https://regex101.com/ist sehr nützlich zum Debuggen von Regex-Problemen.

verwandte Informationen