Como não é possível dar um exemplo de cada nome de arquivo que poderia existir e todos os padrões que você poderia procurar, eu irei para o que você tem:
find . -type f | awk -F / '{print $2}' | grep -v '\.[1-100]$'
Considerando que você forneceu ver1.txt
, ver1
e file.1
como os arquivos no diretório em que você está pesquisando, o comando acima retornará a saída desejada:
ver1.txt
ver1
Para explicar cada parte:
find . -type f
Retorna todos os arquivos no diretório atual
awk -F / '{print $2}'
Remove o ./
no início de cada arquivo que aparece no comando find
grep -v '\.[1-100]$'
Retorna todos os arquivos que não terminam em .#
, em que #
é qualquer número de 1-100
. A opção v
localiza todas as linhas que não correspondem a .#
No caso do exemplo que você forneceu, é necessário usar \
para escapar do .
e usar aspas simples ao redor da string. O $
indica arquivos que terminam com essa string, embora no seu caso, funcione sem ela. Eu só o incluí no caso de haver arquivos com .
em outro lugar no nome do arquivo.
Você terá que alterar os parâmetros dependendo do que está procurando, mas isso deve ajudá-lo.