Как я могу найти весь PDFs из нескольких zip-файлов, которые содержат критерий поиска?

Данный:

  • Каталог с 1.. n zip-файлы случайных имен (все окончание .zip)
    • Каждый zip-файл содержит 1.. n файлы PDF случайных имен (все окончание .pdf)
    • Все PDFs из того же источника и некоторым, расширяются сопоставимый отформатированный.
    • PDFs не являются никаким текстом прозы, а скорее счетами, списками материально-технических ресурсов и т.д. (иначе формы и таблицы; PDFs доступны для поиска, когда я открываю их в средстве просмотра PDF.)
  • Критерий поиска т.е. число серийного изделия или номер счета-фактуры

Требуемый:

  • Способ найти/перечислить все PDFs, которые содержат данный критерий поиска.
  • предпочтительно с существующими инструментами Linux.
2
задан 12 October 2017 в 08:10

1 ответ

Можно преобразовать PDF, чтобы написать и затем применить grep на тот текст:

#!/bin/bash
for z in *.zip
do
  zipinfo -1 "$z" |  # Get the list of filenames in the zip file
    while IFS= read -r f
    do
      unzip -p "$z" "$f" | # Extract each PDF to standard output instead of a file
        pdftotext - - | # Then convert it to text, reading from stdin, writing to stdout
        grep -q 1234 && echo "$z -> $f" # And finally grep the text
    done
done
1
ответ дан 2 December 2019 в 04:47

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

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