Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Como pesquiso numeros de apenas uma dezena

Criei varios arquivos: arq arq10 arq2 arq5 arq78 arq90 tmp2 vict3 arq1 arq100 arq3 arq50 arq9 tmp1 vict1 vict4

E tentei pesquisar qualquer arquivo no intervalo de 1 a 9, porem toda vez que uso o comando ls *[1-9]

Ele me entrega: arq1 arq2 arq3 arq5 arq78 arq9 tmp1 tmp2 vict1 vict3 vict4

Como posso fazer para procurar arquivos que tem apenas numeros menores que 10?

1 resposta
solução!

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:

  1. ls *[1-9] lista todos os arquivos que terminam em um número de 1 a 9.
  2. 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!