我有一个充满有序 jpg 文件的目录,如下所示:
1.jpg
2.jpg
3.jpg
.
.
.
265.jpg
在 Windows 上,我可以连续组合这些文件,以便使用scan.pdf
magick %d.jpg[1-n] scan.pdf
其中n
是 jpg 的总数(在我的例子中是 265)。在 MacOS 上,使用zsh
,我尝试了此操作并收到错误“ no matches found: %d.jpg[1-n]
”(再次替换n
)。如果我尝试
magick *.jpg scan.pdf
它没有以正确的顺序呈现(显然,因为它是按字母顺序而不是数字顺序)。此外,尝试
magick [1-n].jpg scan.pdf
似乎不适用于n
> 9。在 MacOS(可能还有 Linux)上的 ImageMagick 中组合多个连续命名的文件的正确方法是什么?
%d
和[1-n]
是imagemagick
扩展名:第一个是文件名参考,第二个是帧/图像范围 - 请参阅文档中的“输入文件名”部分。该部分包含示例和用青色强调的段落:%d.jpg[1-256]
在 shell 中使用不带引号的结果将其扩展为%d.jpg1
,%d.jpg2
,%d.jpg5
和%d.jpg2
(请阅读此处的答案以获取解释),并且由于没有这样的文件名,因此您会收到错误no matches found
。明显的解决方法是按照手册引用表达式,以便 shell 将其逐字传递给命令
magick
:值得一提的是,您的 shell
zsh
能够通过(n)
glob 限定符对 glob 进行数字排序,因此以下内容也应该有效:尽管这将处理
.jpg
当前目录中的所有文件(按数字排序)。如果要将扩展限制在某个数值范围内,请使用 glob 运算符<m-n>
,它可以匹配到范围内的任何数字(包括):m
n