find -maxdepth 1 ! -name "*.*" -print
Isso não identifica nomes de arquivos como INSSO.TEST.20100503.16400006, que é um documento xml
Responder1
Se você quiser encontrar arquivos com base no que eles contêm - e não em seus nomes - você precisará procurá-los. encontrarnão fará isso sozinho, mas você pode dizer que ele executará outro programa que o fará.
eu começaria comarquivo(1), que imprimirá alguma descrição do arquivo. Se for útil para seus arquivos XML, eu escreveria um script que imprimisse o nome do arquivo seencontrardiz que é o tipo certo. Em seguida, invoque esse script para todos os arquivos elegíveis com:
find . -type f -exec my-xml-detector {} \;
Responder2
Se você deseja encontrar arquivos no diretório atual que não possuem extensão ou uma extensão com mais de 3 caracteres ou uma extensão vazia, você pode fazer:
find . ! -name . -prune ! -name '?*.[!.]' \
! -name '?*.[!.][!.]' \
! -name '?*.[!.][!.][!.]'
(isso pressupõe que nenhum nome de arquivo contenha sequências de bytes que não formem caracteres válidos).