vous pouvez intégrer le résultat de la commande en utilisant $()
, vous pouvez donc faire ce qui suit
$ pdfunite $(ls -v *.pdf) output.pdf
ou
$ pdfunite $(ls *.pdf | sort -n) output.pdf
Cependant, notez que cela ne fonctionne pas lorsque le nom de fichier contient des caractères spéciaux tels que des espaces.
Dans ce cas, vous pouvez procéder comme suit :
ls -v *.txt | bash -c 'IFS=$'"'"'\n'"'"' read -d "" -ra x;pdfunite "${x[@]}" output.pdf'
Bien que cela semble un peu compliqué, c'est juste une combinaison de
- Bash :lit la ligne de fichier séparée par des tabulations dans le tableau
- construire des listes d'arguments contenant des espaces
- Comment échapper les guillemets simples dans des chaînes à guillemets simples ?
Notez que vous ne pouvez pas utiliser xargs
depuis pdfunite
nécessite des pdf d'entrée comme milieu d'arguments. J'ai évité d'utiliser readarray
car il n'est pas pris en charge dans l'ancienne version de bash, mais vous pouvez l'utiliser à la place de IFS=.. read -ra ..
si vous avez un bash
plus récent .