Se todos os arquivos em questão tiverem o mesmo prefixo
(ou seja, o texto antes do número; c
neste caso), você pode usar
gs …args… c?.pdf c??.pdf
c?.pdf
expande para c0.pdf
c1.pdf
… c9.pdf
.
c??.pdf
expande para c10.pdf
c11.pdf
… c20.pdf
(e até c99.pdf
, conforme aplicável).
Enquanto cada palavra da linha de comando contendo o (s) caractere (s) de expansão do nome do caminho
é expandido para uma lista de nomes de arquivos classificados (agrupados) de acordo
com a variável LC_COLLATE
,
as listas resultantes da expansão de curingas adjacentes (globs)
não são mesclados; eles são simplesmente concatenados.
(Eu pareço lembrar que a página de manual do shell uma vez declarou isso explicitamente,
mas não consigo encontrá-lo agora.)
Claro, se os arquivos podem ir até c999.pdf
,
você deve usar c?.pdf c??.pdf c???.pdf
.
Evidentemente, isso pode ser entediante se você tiver muitos dígitos.
Você pode abreviá-lo um pouco; por exemplo, para (até) cinco dígitos,
você pode usar c?{,?{,?{,?{,?}}}}.pdf
.
Se a sua lista de nomes de arquivos é esparsa
(por exemplo, há um c0.pdf
e um c12345.pdf
mas não necessariamente todos os números entre eles),
provavelmente você deve definir a opção nullglob
.
Caso contrário, se (por exemplo) você não tiver arquivos com números de dois dígitos,
você receberia um argumento literal c??.pdf
passado para o seu programa.
Se você tiver vários prefixos
(por exemplo, a<number>.pdf
,
%código%,
e b<number>.pdf
,
com números de um ou dois dígitos),
você pode usar a abordagem óbvia de força bruta:
a?.pdf a??.pdf b?.pdf b??.pdf c?.pdf c??.pdf
ou reduza para c<number>.pdf
.