1
resposta

[Dúvida] Pesquisar Ranges de Números

Olá. No exemplo da aula, o comando ls arq[1-9] traz como resultado arq1 arq2 arq3 arq5 arq9. Mas se o comando é ls arq[1-100], o resultado é arq1. Porquê isso ocorre? 100 não é lido como um único caractere?

1 resposta

Olá, Fábio.

Tudo bem?

Entendo sua dúvida, mas posso te explicar o que está acontecendo.

No comando ls arq[1-9], o shell interpreta os números entre colchetes como caracteres individuais, ou seja, ele vai buscar por arquivos que começam com 'arq' seguido de um único dígito entre 1 e 9. Por isso, o resultado são arquivos como arq1, arq2, arq3, arq5 e arq9.

Quando você executa o comando ls arq[1-100], o shell ainda está interpretando os números entre colchetes como caracteres individuais. Então, ele está procurando por arquivos que começam com 'arq' seguidos de um único dígito entre 1 e 100. Como não existe um único dígito que represente um número entre 1 e 100, o shell interpreta isso como 'arq1', 'arq0' e 'arq0', por isso o resultado é apenas 'arq1'.

O shell não interpreta o intervalo [1-100] como um número de dois ou três dígitos, mas sim como uma sequência de caracteres individuais. Se você quiser buscar por arquivos que começam com 'arq' seguidos de um número de dois dígitos entre 1 e 100, você precisaria usar uma expressão regular ou um loop.

Espero ter ajudado e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software