2016-09-26 111 views
0

我基本上下载一些使用wget网站的图像,然后使用命令行程序“convert”将它们附加到PDF文件中。但这最后一件事似乎不起作用。附加到PDF文件转换在bash

我得到所有的.jpg图像并将它们存储到一个文件夹中,但没有问题,但是当我尝试将它们合并到PDF文件时,它总是提醒最后附加的图像。我已阅读了转换的-append的说法,但它仍然无效。

这是我的代码看起来像:

for file in *.jpg 
do 
    convert "${file}" -append "myfile.pdf" 

done 

但是,因为它似乎合乎逻辑,myfile.pdf永远结束只有最后的JPG图像附加。 我知道,使用转换如:

convert img1.jpg img2.jpg img3.jpg myfile.pdf 

会做的伎俩。但是,因为我不知道下载目录中有多少图像,所以我无法对参数进行硬编码,所以我猜测该目录中每个图像的循环都是我最好的解决方案。

有谁知道如何实现我的目标?任何帮助都感激不尽。

在此先感谢。

回答

1

bash自动扩展通配符的参数(除非如果他们引用或转义),所以即使convert不支持通配符扩展,bash一样。所以你可以做

convert *.jpg myfile.pdf 

请注意,如果文件太多,可能会导致“arglist太长”。但是,对于数百个文件,这应该是可以的。

+0

谢谢!真的很棒的信息!像魅力一样工作! –

+1

太多的MS-DOS非扩展外壳几乎得到了你最好的:) –

0

如果您的文件名遵循img1.jpg img2.jpg .....这样的模式。那么你也可以使用bash范围:

convert img{1..5}.jpg 

这将适用于img1.jpg img2.jpg img3.jpg img4.jpg img5.jpg。您可以根据您的要求更改您的范围。

要转换所有jpg文件,答案已由@ Jean-FrançoisFabre提供。