2010-10-16 1 views
2

У меня есть серия PDF-файлов (Computer Gaming World issues), и я хочу удалить первую страницу из pdf-файла каждой проблемы. Есть 100 вопросов, поэтому графический интерфейс просто не собирается его вырезать. Я использовал Pdftk удалить первую страницу из одного вопроса:Удалить первую страницу из серии PDF-файлов

pdftk 1981_1112_issue1.pdf cat 1 output 1.pdf 

Моя проблема заключается в том, что я не хочу, чтобы изменить и запустить эту команду для каждого вопроса в формате PDF, как это не намного лучше, чем метод GUI.

Использование * .pdf как ввода не работает. Какие еще способы можно использовать для запуска pdftk в каждом PDF-файле?

+0

Есть ли шаблон в названии проблем? – mouviciel

+0

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

+0

У всех файлов есть «проблема» на их имя? – mouviciel

ответ

4

Петля по всем вопросам. Результат вызывается после выпуска, заменяя «issue» на «output». В первой строке выведите страницу 1, вторая строка извлечет другие страницы:

for issue in *_issue*.pdf 
do 
    pdftk ${issue} cat 1 output page1_${issue/issue/output} 
    pdftk ${issue} cat 2-end output otherpages_${issue/issue/output} 
done 
+0

О, я вижу, как это работает. Я сделал некоторые программы, но я не понимал, как переменные работали в bash. Что именно вы делаете с $ {issue/issue/output}? –

+0

$ {a/b/c} заменяет подстроку b подстрокой c содержимым переменной a. – mouviciel

0
shopt -s nullglob 
for file in *.pdf 
do 
out=${file%.pdf}_page1.pdf 
pdftk "$file" cat 1 output "$out" 
done 
+0

Мне нравится этот ответ за его прямолинейность. Нужна ли линия магазина? –