xargsとcsvの入力を使用してcurlコマンドを並列に実行する

xargsとcsvの入力を使用してcurlコマンドを並列に実行する

シリアル番号と画像URLを含む複数の列を含むCSVファイルがあります。ファイルの行が450を超えています。

1,text1,text2,http://image_a.jpg
2,text1,text2,http://image_b.jpg
3,text1,text2,http://image_c.jpg
.
.
.

目標はURLから画像をダウンロードすることで、ファイル名はシーケンスです。次のスクリプトを使用して正常に実行しました。

while IFS=, read col1 col2 col3 col4
do
   curl ${col4} > ${col1}.jpg
done < myfile.csv

それでは、パラレルを使ってカールコマンドを実行したいと思いますxargs -P。 (プロセスの数を制限したいので、バックグラウンドでのみ使用したくありません. &)コマンド。-I-R

私はgnuパラレルとwgetがより良いオプションかもしれないことを知っていますが、私のUnix環境では利用できません。

ありがとうございます。

ベストアンサー1

IF Scott提案された方法の1つを使用してGNU Parallelを取得できますhttps://oletange.wordpress.com/2018/03/28/excuses-for-not-installing-gnu-parallel/これにより、次のように動作できます。

parallel --colsep , 'curl {4} > {1}.jpg' :::: input.csv

おすすめ記事