Как я ищу файл PDF из командной строки?

Я проверяю ссылки статьи и хочу найти положения в теле, где на небольшое количество бумаги (в ссылочном списке) ссылаются. Существует ли редактор PDF, который поддерживает поиск через удар, и извлеките контекст положения? Я попытался преобразовать PDF для отправки текстовых сообщений, но не имел хорошего результата.

26
задан 19 June 2014 в 01:10

5 ответов

Только для добавления к вышеупомянутому ответу в особенности можно использовать инструмент командной строки от xpdf-utils, названного pdftotext, и затем искать текстовый документ, созданный этим инструментом с grep.

Это могло бы выглядеть примерно так:

pdftotext document.pdf - | grep -C5 -n -i "search term"

в руководстве существует больше информации. Единственный недостаток к pdftotext состоит в том, что Вы не можете нас globbing для преобразования нескольких файлов одновременно. Эта проблема может быть преодолена с маленьким сценарием удара:

for f in pdf_directory; do echo $f; pdftotext $f - | grep -i "search_term"; done

, Если у Вас есть проблемы при создании текстового документа из PDF из-за, например, несовместимый файл PDF, затем это - другая проблема.

я думаю в целом, редакторы PDF не включают командные строки, потому что они являются графическими. Если Вы хотите использовать удар, (или возможно zsh!) затем Вам, возможно, придется использовать терминальную оболочку.

Удачи!

22
ответ дан 23 November 2019 в 01:08

Примечание poppler-utils

: xpdf-utils является переходным пакетом для poppler-utils.

можно использовать poppler-utils. poppler-utils, комплект инструментов для файлов переносимого формата документа (PDF).

Для установки его можно использовать Центр программного обеспечения Ubuntu, или путем нажатия ниже:

Install poppler-utils

pdfgrep

pdfgrep может искать строку или шаблон в файлах PDF рекурсивно в деревьях каталогов, считая соответствия или печатая некоторый контекст для каждого соответствия. Например, для рекурсивного поиска keyword в /some directory, нечувствительный к регистру:

pdfgrep -Ri keyword /some/directory

Pdfgrep является инструментом к искомому тексту в файлах PDF. Это работает подобное 'grep'.

Функции:

  • поиск регулярных выражений.
  • поддержка некоторых важных grep опций, включая: + имя файла производится. + номер страницы производится. + дополнительная нечувствительность к регистру. + случаи количества
    .
  • и самая важная функция: вывод цвета!

Install pdfgrep

<глоток> <глоток> 1 Источник: Каталог приложений Ubuntu

20
ответ дан 23 November 2019 в 01:08

Искать регулярное выражение в нескольких файлах PDF с помощью pdfgrep:

find /path -iname '*.pdf' -exec pdfgrep -H 'pattern' {} \;

, где путь является местоположением для Ваших файлов PDF.

6
ответ дан 23 November 2019 в 01:08

Причина pdftotext была без успеха, мог бы быть то, что PDF сканируется изображения, и Вам нужны к OCR они, я записал быстрый способ искать все pdfs, который не может быть grepредактор и OCR их.

Я заметил если a pdf файл не имеет никакого шрифта, это обычно не доступно для поиска. Знание этого мы можем использовать pdffonts.

Сначала 2 строки pdffonts заголовок таблицы, поэтому когда файл доступен для поиска, имеет больше чем два вывода строки, зная это мы можем создать:

gedit check_pdf_searchable.sh

вставьте это

#!/bin/bash 
#set -vx
if ((`pdffonts "$1" | wc -l` < 3 )); then
echo $1
ocrmypdf "$1" "$1"_ocr.pdf
fi

затем сделайте это исполняемым файлом

chmod +x check_pdf_searchable.sh

затем перечислите весь недоступный для поиска pdfs в каталоге:

ls -1 ./*.pdf | xargs -L1 -I {} ./check_pdf_searchable.sh {}

или в каталоге и его подкаталогах:

tree -fai . | grep -P ".pdf$" | xargs -L1 -I {} ./check_pdf_searchable.sh {}

Также необходимо установить:

sudo apt install ocrmypdf
0
ответ дан 23 November 2019 в 01:08

rga - это оболочка для ripgrep , которая является гораздо более быстрым вариантом для поиска PDF-файлов в командной строке.

-1
ответ дан 20 February 2020 в 19:33

Другие вопросы по тегам:

Похожие вопросы: