Bash 从一系列PDF中删除第一页
我有一系列的pdf(),我想从每期的pdf文件中删除第一页。有100个问题,所以GUI是不会解决的。我使用pdftk从一期中删除了第一页:Bash 从一系列PDF中删除第一页,bash,pdf,pdftk,Bash,Pdf,Pdftk,我有一系列的pdf(),我想从每期的pdf文件中删除第一页。有100个问题,所以GUI是不会解决的。我使用pdftk从一期中删除了第一页: pdftk 1981_1112_issue1.pdf cat 1 output 1.pdf 我的问题是,我不想对每个pdf问题都修改并运行此命令,因为这并不比GUI方法好多少 使用*.pdf作为输入似乎不起作用。我还可以使用哪些其他方法在每个PDF上运行pdftk?对所有问题进行循环。输出以问题命名,将“问题”替换为“输出”。第一行提取第1页,第二行提取其
pdftk 1981_1112_issue1.pdf cat 1 output 1.pdf
我的问题是,我不想对每个pdf问题都修改并运行此命令,因为这并不比GUI方法好多少
使用*.pdf作为输入似乎不起作用。我还可以使用哪些其他方法在每个PDF上运行pdftk?对所有问题进行循环。输出以问题命名,将“问题”替换为“输出”。第一行提取第1页,第二行提取其他页:
shopt -s nullglob
for file in *.pdf
do
out=${file%.pdf}_page1.pdf
pdftk "$file" cat 1 output "$out"
done
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
问题的命名有规律吗?不完全是……你会注意到年份是文件名中的第一个术语,年份肯定会有所不同。但我可以很容易地批量重命名…所有文件的名称中都有“问题”吗?它们有。这是全年第四季度发行的.pdf。另外,pdftk_issue.pdf cat 1 output*.pdf似乎提供了正确的输入,但我该如何称呼输出文件?您的示例命令不会从输入pdf中删除第一页。它将输入的第一页提取到一个单页输出PDF(1.PDF),并保持输入不变。哦,我明白了。我做过一些编程,但我没有意识到变量在bash中是如何工作的。你到底在用${issue/issue/output}做什么?${a/b/c}在a变量的内容中用c子字符串替换b子字符串。我喜欢这个答案,因为它直截了当。有必要排队吗?