find -iname "*.pdf" -exec pdfinfo -meta {} \;|awk '{if($1=="Pages:"){s+=$2}}END{print s}'
Команда «find» используется для поиска файлов и каталогов в заданной директории и ее подкаталогах. В данном случае команда ищет файлы с расширением .pdf с помощью опции «-iname «*.pdf»».
Опция «-exec» позволяет выполнять команду «pdfinfo -meta» на найденных файлах. Команда «pdfinfo» извлекает информацию о PDF-файле, а опция «-meta» указывает, что нужно получить метаданные.
Далее, команда использует утилиту awk для обработки выходных данных «pdfinfo». Если значение первого поля (в данном случае «pages:») совпадает со строкой «pages:», то второе поле (количество страниц) добавляется к переменной «s».
В конце выполнения всех команд, команда «end» печатает значение переменной «s», которое представляет собой общее количество страниц во всех найденных PDF-файлах.
Альтернативный подход может быть использование команды «pdftotext -layout -nopgbrk — | grep -c ^» — она извлекает текст из PDF-файла, пропускает страницы, а затем считает количество строк.
В данном случае аргументы, передаваемые команде «find», указывают на тип файлов, которые нужно найти («-iname «*.pdf»») и команду, которую нужно выполнить («-exec …»).