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 中?
有几种选择:
最简单的如下,但如果页面太多,可能会溢出命令行长度:
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)