Bash для преобразования файлов PDF в нескольких подкаталогах - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь преобразовать файлы PDF в 2432 подкаталогах (один файл PDF на папку) в файлы HTML.

Например, я попробовал несколько вариантов

find . -type d | while read d; for file in *.pdf; do pdftohtml -c -i -s "$file"; done

и

for f in ./*/*.pdf; do pdftohtml -c -i -s "$file"; done

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

Я знаю, что часть кода работает, потому что я могу поместить несколько файлов PDF в одну папку и использовать

for file in *.pdf; do pdftohtml -c -i -s "$file"; done

для рекурсивного преобразования всех файлов в этой папке в HTML.

Есть ли способ, которым я могу искать в каждой папке и конвертировать каждый файл с помощью скрипта bash?Или это то, что мне придется делать по одной папке за раз?

Ответы [ 3 ]

0 голосов
/ 18 октября 2018

Ваша вторая команда казалась верной.Была только одна маленькая ошибка

for f in ./*/*.pdf; do pdftohtml -c -i -s "$file"; done

Вы написали for f, но использовали $file.Попробуйте

for f in ./*/*.pdf; do pdftohtml -c -i -s "$f"; done
0 голосов
/ 18 октября 2018

использование:

find . -name \*.pdf -exec pdftohtml -c -i -s {} \;
0 голосов
/ 18 октября 2018

Вы можете использовать команду find с параметром -exec для запуска преобразования:

find /path/to/your/root/pdf/folder -type f -name "*.pdf" -exec bash -c 'pdftohtml -c -i -s "$1"' _ {} \;

pdftohtml выполняется для каждого найденного файла PDF.Обратите внимание, что {} представляет файл PDF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...