在 imagemagick 中将文件转换为 pdf 之前对文件进行排序

Pax*_*ata 4 unix pdf sorting pipe imagemagick

我有一个文件夹,里面装满了需要转换为 pdf 的图像文件。我使用 wget 下载它们。问题是 linux 给出的文件排序并不是页面的实际顺序,这是文件排序的示例:

100-52b69f4490.jpg
101-689eb36688.jpg
10-1bf275d638.jpg
102-6f7dc2def9.jpg
103-2da8842faf.jpg
104-9b01a64111.jpg
105-1d5e3862d8.jpg
106-221412a767.jpg
...
Run Code Online (Sandbox Code Playgroud)

我可以使用 imagemagick 将这些图像转换为 pdf,命令如下 convert *.jpg output.pdf

但它会按照上述顺序将页面放入该 pdf 中,而不是按照人类可读的数字顺序 1-blahblahblah.jpg、2-blahblahblah.jpg、3-blahblahblah.jpg 等。

执行此操作的最简单方法是通过管道转换排序的输出吗?或者在我将每个文件添加到 pdf 文件时通过管道将其添加到 wget 中?

小智 10

convert $(ls -1v *.jpg) book.pdf

为我工作


Mar*_*ell 7

有几种选择:

最简单的如下,但如果页面太多,可能会溢出命令行长度:

convert $(ls *jpg | sort -n) result.pdf
Run Code Online (Sandbox Code Playgroud)

stdin接下来是像这样输入文件列表:

ls *jpg | sort -n | convert @- result.pdf
Run Code Online (Sandbox Code Playgroud)