Bagaimana saya bisa menentukan jumlah halaman odt, doc, docx dan dokumen kantor lainnya dari CLI?

13

Sangat mudah untuk menemukan jumlah halaman dokumen PDF dari baris perintah:

pdfinfo sample.pdf | grep ^Pages:

... tapi saya belum dapat menemukan metode serupa untuk odtfile dan dokumen kantor lainnya.

Apakah ada cara untuk secara program menentukan jumlah halaman dari dokumen-dokumen ini?

Glutanimate
sumber

Jawaban:

10

Terima kasih atas semua jawabannya, semuanya. Dengan bantuan Anda, saya dapat menyusun daftar perintah yang dapat mengekstrak jumlah halaman dari hampir semua dokumen kantor yang relevan:

DOCX / PPTX

unzip -p 'sample.docx' docProps/app.xml | grep -oP '(?<=\<Pages\>).*(?=\</Pages\>)'

unzip -p 'sample.pptx' docProps/app.xml | grep -oP '(?<=\<Slides\>).*(?=\</Slides\>)'

Catatan : unzipdapat diinstal dengan sudo apt-get install unzip.

DOC / PPT

wvSummary sample.doc | grep -oP '(?<=of Pages = )[ A-Za-z0-9]*'

wvSummary sample.ppt | grep -oP '(?<=of Slides = )[ A-Za-z0-9]*'

Catatan : wvSummary(case-sensitive!) Adalah bagian dari wvpaket. Instal dengan sudo apt-get install wv.

ODT

unzip -p sample.odt meta.xml | grep -oP '(?<=page-count=")[ A-Za-z0-9]*'

PDF

pdfinfo sample.pdf | grep -oP '(?<=Pages:          )[ A-Za-z0-9]*'

Catatan: pdfinfoadalah bagian dari poppler-utilsdan harus diinstal sebelumnya di Ubuntu.

DJVU

djvused -e "n" sample.djvu

Catatan: djvusedadalah bagian dari djvulibre-binpaket dan dapat diinstal bersama sudo apt-get install djvulibre-bin.

Glutanimate
sumber
6
unzip -p document.odt meta.xml | grep -o 'page-count="[0-9]*"'

Lihat di sini untuk referensi lebih lanjut .

Nykakin
sumber
Terima kasih atas tautannya! itu bacaan yang sangat menarik. Saya akan menerima jawaban Anda tetapi saya menemukan beberapa perintah bagus lainnya untuk dokumen kantor lainnya dan menyusunnya dalam jawaban saya sendiri. Saya harap kamu tidak keberatan.
Glutanimate
5

Saya tidak menemukan cara untuk mengekstrak odtinfo file seperti pdfinfohalnya, tetapi Anda dapat membuat skrip cepat untuk digunakan pdfinfodengan odtfile, mengkonversi setiap file odt ke PDF dan kemudian menghapus file yang dikonversi jika Anda tidak akan menggunakannya:

libreoffice --headless --invisible --convert-to pdf sample.odt
pdfinfo sample.pdf | grep ^Pages:
rm sample.pdf

Semoga ini bisa membantu Anda.

Leo
sumber