Я знаю, что есть другая ветка с множеством ответов на этот вопрос; тем не менее, я новичок, и многое из этого было для меня бредом. Я пытаюсь учиться, хотя :)

Во всяком случае, я установил ghostscript и попытался запустить его несколько раз с помощью этого сценария

for file in *.pdf ; do gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite \
         -sOutputFile="${file%.pdf}-page1.pdf" -dFirstPage=1 -dLastPage=1 "$file" ;

Я получил этот сценарий отсюда.

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

Спасибо!

1 ответ1

0

Каталог, в котором находятся файлы PDF, является текущим каталогом, поскольку for files in *.pdf ; ... не указывает путь к каталогу для соответствующих файлов.

Выходной файл формируется из "$file" с расширением bash "${file%.pdf}-page1.pdf" , которое удаляет .pdf из конца имени файла и заменяет его на -page1.pdf , так что Например, report.pdf создает выходной файл report-page1.pdf в том же каталоге.

Вы можете добавить путь к каталогу в предложении for , например, for files in SourceDir/*.pdf ; ...

Вы можете изменить строку замены; или вы можете добавить каталог в начало, хотя подстановка становится более сложной, если вы используете путь к каталогу в предложении for .

Вы должны прочитать о расширении параметров в руководстве по bash .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .