Como executar a substituição de comandos antes da expansão da chave?

2

Gostaria de realizar a substituição de comandos antes da expansão de contraventores, mas não consegui:

$ ls {$(seq -s , 13 20)}.pdf
ls: cannot access {13,14,15,16,17,18,19,20}.pdf: No such file or directory

Como posso fazer isso?

    
por Tim 17.10.2014 / 09:42

2 respostas

5

Você simplesmente precisa usar o eval shell embutido:

$ eval ls {$(seq -s , 13 20)}.pdf

Em que eval recebe os argumentos:

ls {$(seq -s , 13 20)}.pdf

e concatena-os juntos em um único comando:

ls {13,14,15,16,17,18,19,20}.pdf

que é então lido e executado pelo shell.

$ eval ls {$(seq -s , 13 20)}.pdf
13.pdf  14.pdf  15.pdf  16.pdf  17.pdf  18.pdf  19.pdf  20.pdf
    
por 17.10.2014 / 13:14
2

você já tentou

ls $(seq -f %.0f.pdf 13 20 )
  • -f fornece a string de formato
  • .0f para 0 dígitos decimais float
  • .pdf óbvio

(e você sabe sobre a sintaxe $ ())

    
por 17.10.2014 / 09:49