O padrão de globbing do nome do arquivo padrão para corresponder a um dígito é [0-9]. Isso corresponde a um único dígito:
cat file[0-9].txt
Para selecionar apenas dois deles:
cat file[25].txt
Para números maiores que 9, a expansão de braçadeira será útil (mas veja a nota abaixo para saber a diferença entre padrões de globbing e expansões de braçadeira):
cat file{25..60}.txt
Mais uma vez, a expansão de chaves também permite números individuais:
cat file{12,45,900,xyz}.txt
(observe que no exemplo acima, a expansão de chave não envolve um loop aritmético, mas gera apenas nomes com base nas cadeias fornecidas).
Em bash, com a extglobopção de shell ativada ( shopt -s extglob), o seguinte também funcionará:
cat file@(12|45|490|foo).txt
O @(...)padrão corresponderá a qualquer um dos |padrões delimitados incluídos .
A diferença entre os padrões de englobamento como [...]e @(...)e expansões cinta, é que uma expansão cinta é gerado na linha de comando e não pode realmente encontrou nenhum nomes existentes no diretório atual. Um padrão globbing de nome de arquivo corresponderá a nomes, mas o shell não reclamará se nem todo o nome possível existir. Se não existir um nome correspondente, o padrão permanecerá sem expansão, a menos que também nullglobseja definida a opção shell, nesse caso o padrão será removido.
Exemplo:
touch file1
ls file[0-9]
Aqui, apenas a lista de arquivos file1será exibida.
Com ls file{0..9}, lsiria reclamar por não encontrar file0, file2etc.
No exemplo a seguir, o primeiro comando tocará apenas nos nomes existentes que correspondem ao padrão especificado, enquanto a segunda linha criará arquivos que ainda não existem:
touch file[0-9]
touch file{0..9}
file45.txt. A expressão entre colchetes[...]funciona exatamente como na expressão regular, mas é usada!no lugar de^para dizer "not in". Um[...]padrão sempre corresponderá a um único caractere.