次のように注文した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
>9では動作しないようですn
。 MacOS(およびLinux)のImageMagickで連続して名前を付けられた複数のファイルを結合する正しい方法は何ですか?
ベストアンサー1
%d
拡張子です。 1つ目はファイル名参照、2つ目はフレーム/イメージの範囲です。セクションを参照してください[1-n]
。imagemagick
ファイル名を入力してくださいドキュメントから。このセクションには、水色で強調された例と詩が含まれています。
Linuxシェルは通常括弧を解釈するので、上記のファイル名を引用符で囲みます。 Windowsコマンドシェルでは括弧は解釈されませんが、引用符を使用しても問題はありません。ただし、ほとんどの場合、LinuxとWindowsでは一重引用符と二重引用符の役割が反対であるため、Windowsユーザーは通常、一重引用符を表示するたびに二重引用符を使用する必要があり、その逆も同様です。
magick 'images.gif[0-3]' images.mng
%d.jpg[1-256]
シェルで引用されていない結果を使用すると、結果は、および%d.jpg1
(読み取り)に展開されます%d.jpg2
。%d.jpg5
%d.jpg6
答えはここにあります説明のために)対応するファイル名がないため、エラーが発生しますno matches found
。
確実な解決策は、マニュアルに従って式を引用して、シェルがそれをそのままコマンドに渡すようにすることですmagick
。
magick '%d.jpg[1-256]' scan.pdf
シェルはglob修飾子を介してglobを数値的に整列させることができるため、次のことも機能する必要があることに言及する価値がありますzsh
。(n)
magick ./*.jpg(n) scan.pdf
.jpg
ただし、これを行うと、現在のディレクトリ内のすべてのファイルが処理されます(数値順にソート)。特定の範囲の値に拡張を制限するには、<m-n>
一致するglob演算子を使用します。どのm
以下を含む範囲の数字n
:
magick <1-256>.jpg(n) scan.pdf