2010-10-16 67 views
2

我有一系列PDF(Computer Gaming World issues),我想從每個問題的pdf文件中刪除第一頁。有100個問題,所以GUI不會削減它。我用PDFTK從一個問題刪除第一頁:從一系列PDF中刪除第一頁

pdftk 1981_1112_issue1.pdf cat 1 output 1.pdf 

我的問題是,我不希望有修改,併爲每一個PDF問題上運行這個命令,是不是比GUI方法要好得多。

使用* .pdf作爲輸入似乎不起作用。我可以使用哪些其他方式在每個PDF上運行pdftk?

+0

在命名問題中是否存在模式? – mouviciel 2010-10-16 09:00:30

+0

不完全是......你會注意到年份是文件名中的第一項,而且年份肯定不一樣。但我可以輕鬆地批量重命名... – 2010-10-16 09:03:10

+0

所有的文件都有「問題」在他們的名字? – mouviciel 2010-10-16 09:05:54

回答

4

在所有問題上循環。輸出是通過用「輸出」替換「問題」來命名的。第一行提取頁面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}? – 2010-10-16 09:39:27

+0

$ {a/b/c}將b子串替換爲變量內容中的c子串。 – mouviciel 2010-10-16 10:13:16

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

我喜歡這個直接的答案。是否需要購物線? – 2010-10-16 09:44:48