Use find
para pesquisar arquivos:
find . -regex ".*/[A-Z0-9]+\.[a-z]+"
Isso realiza a pesquisa no diretório atual ( .
), passando também por subdiretórios de maneira recursiva.
-
[.*/]
cobre o caminho do arquivo -
[A-Z0-9]
representa todas as letras de A a Z (incluindo, por exemplo, Å como mencionado por @vidarlo) e todos os dígitos de 0 a 9 -
+
corresponde ao caractere ou expressão precedente uma ou várias vezes -
\.
é um ponto literal -
[a-z]
significa todas as letras de a a z
Para alguns caracteres especiais, pode ser necessário usar, por exemplo, [[:upper:]]
em vez disso:
find . -regextype egrep -regex ".*/[[:upper:][:digit:]]+\.[[:lower:]]+"
Pergunta editada
Para combinar os testes de find
, há -a
e -o
. Para seu exemplo, isso pode ajudar:
find /mnt/ \( -name "*[a-z]*.*" -o -name "*.*[A-Z]*" \) -exec echo {} +