[英]sort files before converting to pdf in 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
...
我可以使用 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
接下来是在stdin
上stdin
文件列表,如下所示:
ls *jpg | sort -n | convert @- result.pdf
convert $(ls -1v *.jpg) book.pdf
为我工作
这里有一个bash脚本来做到这一点:
#!/bin/bash
sort -n < list.txt > sorted_list.tmp
readarray -t list < sorted_list.tmp
convert "${list[@]}" output.pdf
rm sorted_list.tmp
exit
你可以list.txt
通过首先列出目录ls > list.txt
。 sort -n
(数字排序)“规范化”您的条目。 排序后的列表保存在.tmp
文件中,最后删除。 你好,
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.