n個のファイルを繰り返しますか?

n個のファイルを繰り返しますか?

私はかなり簡単なことをしたいです。montage何千もの画像があるディレクトリで作業したいのですが、次のオプションはほとんどありません。

me@home$ montage -size 256x256 DSC01*.JPG.svg output.png

...しかし、一度に約100枚の画像しかキャプチャできないので十分ではありません。

me@home$ montage -size 256x256 *.svg output.png

...結果ファイルが大きすぎて解析できないため、すべての画像を同時にインポートします。

私は何ですか?したい一度に100〜200個のファイルを繰り返すだけです。 forループ(?)を使用すると、これを行うことができるようですが、どうすればよいか少し混乱しています。私はそれを行うための賢い方法があると思いましたか、find -execそれをxargs考えませんでした。使用していますが、bash時々zsh使用します。

要約すると、私は2600個のイメージファイルが与えられればモンタージュを約13~26回(100~200個のファイルごとに1回)呼び出し、n個のファイルが与えられればn回の倍数で呼び出せるライナーを探しています。

ベストアンサー1

bashいくつかの修正で特別な配列属性を使用する1つのアプローチzshは次のとおりです。

image_files=(*.svg) # use your own glob expression
n=200               # number of files per command line; adjust to taste
for ((i=0; i < ${#image_files[@]}; i+=n)); do
        montage -size 256x256 "${image_files[@]:i:n}" output-"$i".png
done

おすすめ記事