Olá, Victor!
Quando você usa o comando ls *[1-9]
, ele está listando todos os arquivos que terminam com qualquer número de 1 a 9, independentemente de quantos dígitos eles têm. Por isso, você está vendo arquivos como arq78
e arq90
na listagem.
Para listar apenas arquivos que têm números de uma única dezena (ou seja, de 1 a 9), você pode usar uma expressão que exclua arquivos com mais de um dígito numérico. Uma maneira de fazer isso é especificar que o número deve estar no final do nome do arquivo e ser seguido por nada ou por um caractere não numérico.
Você pode tentar o seguinte comando:
ls *[1-9] | grep -E '.*[^0-9][1-9]$|.*[1-9]$'
Este comando faz o seguinte:
ls *[1-9]
lista todos os arquivos que terminam em um número de 1 a 9.grep -E '.*[^0-9][1-9]$|.*[1-9]$'
filtra essa lista para incluir apenas arquivos que terminam em um único dígito de 1 a 9.
Vamos ver um exemplo prático com os arquivos que você mencionou:
arq arq10 arq2 arq5 arq78 arq90 tmp2 vict3
arq1 arq100 arq3 arq50 arq9 tmp1 vict1 vict4
Ao rodar o comando ls *[1-9] | grep -E '.*[^0-9][1-9]$|.*[1-9]$'
, você deve obter:
arq1
arq2
arq3
arq5
arq9
tmp1
tmp2
vict1
vict3
vict4
Espero ter ajudado e bons estudos!