find . -type d '(' -name '*19[0-8][0-9]*' -o -name '*1990*' ')'
Isto encontraria qualquer diretório dentro ou sob o diretório atual cujo nome contenha qualquer um dos números de 1900 a 1990. O teste é dividido em dois no nome do arquivo, onde os primeiros testes para números entre 1900 e 1989, e o segundo teste é para 1990.
Expressões regulares não precisam ser usadas neste caso. Os padrões acima são padrões de globalização de nomes de arquivo.
Se você quiser adicionar um teste para um sufixo de nome de arquivo .events
, poderá fazer isso de duas maneiras:
find . -type d -name '*.events' '(' -name '*19[0-8][0-9]*' -o -name '*1990*' ')'
find . -type d '(' -name '*19[0-8][0-9]*.events' -o -name '*1990*.events' ')'
Seu comando não encontrará nada, pois um *
no início de uma expressão regular corresponde ao caractere *
. Você também pode escapar de um dos [
na expressão, o que faz com que ele corresponda ao caractere [
.