puede incrustar el resultado del comando usando $()
, para que puedas hacer lo siguiente
$ pdfunite $(ls -v *.pdf) output.pdf
o
$ pdfunite $(ls *.pdf | sort -n) output.pdf
Sin embargo, tenga en cuenta que esto no funciona cuando el nombre de archivo contiene caracteres especiales como espacios en blanco.
En el caso puedes hacer lo siguiente:
ls -v *.txt | bash -c 'IFS=$'"'"'\n'"'"' read -d "" -ra x;pdfunite "${x[@]}" output.pdf'
Aunque parece un poco complicado, es solo una combinación de
- Bash:lee una línea de archivo separada por tabuladores en una matriz
- construir listas de argumentos que contengan espacios en blanco
- ¿Cómo escapar de las comillas simples dentro de cadenas entre comillas simples?
Tenga en cuenta que no puede usar xargs
desde pdfunite
requiere pdf de entrada como medio de los argumentos. Evité usar readarray
ya que no es compatible con la versión anterior de bash, pero puede usarlo en lugar de IFS=.. read -ra ..
si tiene bash
más nuevo .