Saya tahu bahwa saya dapat mengonversi file pdf ke file teks satu per satu seperti ini:
$ pdftotext filename.pdf
Tetapi apakah ada satu perintah yang akan melakukan konversi itu tanpa menentukan nama file yang terpisah untuk mengonversi semuanya?
Saya melihat di sini, di Wikipedia , bahwa "Wildcard (*), misalnya $ pdftotext * pdf, untuk mengonversi banyak file, tidak dapat digunakan karena pdftotext hanya mengharapkan satu nama file."
xargs
seringkali merupakan solusi cepat untuk menjalankan perintah yang sama beberapa kali hanya dengan perubahan kecil setiap kali. The-n1
pilihan memastikan bahwa hanya satu file pdf diteruskan ke pdftotext pada suatu waktu.Sunting: Jika Anda khawatir tentang spasi dalam nama file dan semacamnya, Anda dapat menggunakan alternatif ini:
sumber
ls *.pdf | xargs -L1 -I% pdftotext % %.txt
tulis skrip bash
atau ketik di perintah satu baris sebagai berikut:
for f in *.pdf; do pdftotext "$f"; done
Saya harap ini membantu. Saya tidak memiliki grup besar .pdf untuk mengujinya, tetapi saya menggunakan strategi ini untuk mengonversi file .flac saya menjadi file .ogg.
sumber
Saya harus berterima kasih kepada Sam dan Ryan Thompson juga kepada semua penjawab lainnya - karena jawaban saya di sini hanyalah variasi yang berkaitan dengan kemungkinan menambahkan solusi mereka ke tindakan kustom Thunar:
jadi, seperti perintah terminal apa pun, perintah untuk mengonversi ke teks semua file pdf dalam folder dapat dimasukkan ke dalam daftar tindakan khusus di manajer file Thunar
Perintah yang ada
find . -name '*.pdf' -print0 | xargs -0 -n1 pdftotext
, (berasal dari Ryan Thompson ) itu adalah yang saya lebih suka gunakan, tetapi memiliki giliran yang buruk ... lihat di bawah ...... itu adalah perintah yang lucu, untuk digunakan dengan hati-hati: itu dibuat untuk mengkonversi ke teks semua pdf di dalam folder di mana ia dipecat, jadi, jika dipecat secara tidak sengaja di folder home, itu akan memiliki beberapa yang tidak diinginkan efek: semua pdf Anda akan dikonversi ke teks!
(Saya mengujinya seperti ini: membuat folder bernama "test" di desktop dan di dalamnya ada file pdf dan serangkaian folder di dalam folder (
/Desktop/test/a/b/c/e/f/g/h/i
) masing-masing berisi pdf yang sama. Menjalankan perintah itu/Desktop/test
telah mengonversi semua pdf ke dalam folder "i".)(Saya akan menerima komentar tentang bagaimana menyesuaikan perintah ini untuk menghindari risiko itu.)
Mengganti itu dengan yang lain (
for file in *.pdf; do pdftotext "$file" "$file.txt"; done
) yang berasal dari Sam , masalahnya dihindari.Tetapi dalam kasus-kasus tertentu orang mungkin berharap apa yang dilakukan solusi Ryan!
sumber
find
perintah mencari di subdirektori dengan menggunakan-maxdepth 1
. Juga, ketika memasukkannya ke fitur tindakan khusus Thunar, Anda mungkin harus menggantinyafind .
denganfind %F
untuk memungkinkan Thunar melewati jalur direktori yang dipilih dengan benar.Ini menghasilkan sample.pdf.txt .
Saya mencoba menggunakan yang ini, seperti yang disarankan user2357111317 dan saya juga menyertakan -layout untuk mempertahankan tata letak teks
sumber