Usando printf
e xargs
suportando entrada delimitada por nul:
printf -- '-fprintf -- '-f%pre%%s%pre%' important-files/*.txt | xargs -0 prog
%s%pre%' important-files/*.txt | xargs -0 prog
printf
faz um loop na string de formatação sobre os argumentos, portanto, para cada nome de arquivo na expansão do glob, ele imprimirá -f
e o nome do arquivo será separado pelo caractere nulo. xargs
, em seguida, lê isso e converte em argumentos para prog
. O --
necessário, pois algumas implementações de printf
têm problemas com -
na string de formatação. Como alternativa, o -
pode ser substituído por 5
, que é padrão.
Mesmo princípio da resposta do Rakesh , mas usando diretamente a expansão do curinga.