Bashループでソートされたプロセスを最適化する方法は?

Bashループでソートされたプロセスを最適化する方法は?

多数のファイルを順次ダウンロードし、カスタム名を指定しながらダウンロードしたいと思います。

私のコードは次のとおりです

iterator=1;
while read p; do
    curl "$p" -o $((iterator++)).jpg;
done < ../outProfileImages;

これはwgetの「入力ファイル」モードと比較して非常に遅いようですが、wgetを使用してダウンロードしたファイルの正しい順序を維持しながら、カスタム名に番号を付ける方法を見つけることができません。

ファイルのシリアル番号だけを含むカスタム名が欲しかった理由は、ダウンロード時にファイル名が大きすぎるためでしたが、ファイル名だけを見ても順序がわかり、便利であるようでした。

ベストアンサー1

GNUを使用すると、xargs次のことができます。

awk '{printf "%04d.jpg\n%s\n", NR, $0}' < ../outProfileImages |
  xargs -d '\n' -rn2 -P10 curl -o

最大10個まで並列に実行しますcurl

おすすめ記事