Це важке завдання, яке нелегко вирішити. Якщо ви дійсно хочете точного результату, скопіюйте абзац за пунктом для перегляду PDF у текстовий файл і перевірте його за допомогою wc -w
інструменту. Причина, чому не використовувати pdftotext
в цьому випадку, полягає в тому, що математичні формули можуть потрапляти також у вихідний і розглядатися як "слова". (Або ви можете редагувати отриманий результат pdftotext
). Іншою причиною, чому це може бути невдалою, є заголовки: "4.3.2 Foo Bar" зараховується до трьох слів.
Шлях навколо - це лише підрахунок слів, які починаються із знака [A-Za-z]. Тож, що я зазвичай роблю, це підхід у два кроки:
отримайте список слів uniq і перевірте, чи всередині є занадто багато помилкових позитивів:
pdftotext foo.pdf - | tr " " "\n" | sort | uniq | grep "^[A-Za-z]" > words
Я не використовую тут словник, оскільки деякі орфографічні помилки не вважатимуться словами.
Отримайте цей перелік слів і скопіюйте його у висновку pdftotext:
pdftotext foo.pdf - | tr " " "\n" | grep -Ff words | wc -l
Я знаю, що це можна зробити в одному вкладиші, але тоді я не міг легко побачити результат фільтра з першого кроку. Можливо, -F
вам допоможе, як зазначено в коментарі moi нижче (спасибі).
pdftotext
: не забувайте е. І ви можете використовувати одну команду:pdftotext myfile.pdf - | wc -w
.