Anda dapat menyematkan hasil perintah menggunakan $()
, sehingga Anda dapat melakukan hal berikut
$ pdfunite $(ls -v *.pdf) output.pdf
atau
$ pdfunite $(ls *.pdf | sort -n) output.pdf
Namun, perhatikan bahwa ini tidak berfungsi saat nama file berisi karakter khusus seperti spasi putih.
Jika Anda dapat melakukan hal berikut:
ls -v *.txt | bash -c 'IFS=$'"'"'\n'"'"' read -d "" -ra x;pdfunite "${x[@]}" output.pdf'
Meskipun kelihatannya agak rumit, itu hanya kombinasi dari
- Bash:Membaca baris file yang dipisahkan tab ke dalam array
- buat daftar argumen yang berisi spasi putih
- Bagaimana cara keluar dari tanda kutip tunggal di dalam string dengan tanda kutip tunggal?
Perhatikan bahwa Anda tidak dapat menggunakan xargs
sejak pdfunite
membutuhkan input pdf sebagai tengah argumen. Saya menghindari penggunaan readarray
karena tidak didukung di versi bash yang lebih lama, tetapi Anda dapat menggunakannya sebagai pengganti IFS=.. read -ra ..
jika Anda memiliki bash
yang lebih baru .
cara menemukan jalur modul Linux
Bagaimana cara mendapatkan kode keluar dari proses pemijahan di skrip Shell yang diharapkan?