Следующее работает для простых случаев:
find -name "*.*[A-Z]*" ! -name "*.*[^A-Z]*"
Это может произойти сбой для файлов с двумя или более точками в имени. Для этого случая вам нужно использовать регулярные выражения, например, с grep
:
find | grep '\.[A-Z][A-Z]*$'
или egrep
:
find | egrep '\.[A-Z]+$'
После комментария Камиля Мачоровского ответ можно сделать независимым от локали, используя [:upper:]
вместо A-Z
:
find | egrep '\.[[:upper:]]+$'
Боюсь, что мы, носители английского языка, легко можем забыть такие вопросы.