2017-04-06 12 views
0

私はこの質問を十分に説明していないので、重複して誤解されていました。毎回異なる引数で複数回並列にBashスクリプトを実行する方法は?

CSVファイルを毎回N行読み込み、その行(名前)を操作するスクリプトを実行します。他のスクリプトに引数としてN行を送り、それを並行して実行するにはどうすればよいですか?

ファイルは、このような40万線でCSVです:

nombre,ape_paterno,ape_materno 
ALFREDO,AGUILAR,AGUILAR 
ANGEL,AGUILAR,AGUILAR 
CARLOS,AGUILAR,AGUILAR 
DANIEL,AGUILAR,AGUILAR 
EDUARDO,AGUILAR,AGUILAR 
ELIZABETH,AGUILAR,AGUILAR 
FERNANDO ,AGUILAR,AGUILAR 
FRANCISCA,AGUILAR,AGUILAR 
FRANCISCO ,AGUILAR,AGUILAR 
FRANCISCO JAVIER,AGUILAR,AGUILAR 
... 

私はこのような何かしたい:

{ 
read 
while IFS="," read $N lines 
do 
    sh ${DIR}/Downloader.sh $N-Lines-as-argument & 
done } < "$input" 
wait 

を私はhereから回答を試してみましたが、私の結果はnullになります。あなたはBASHでこのスクリプトを使用することができます

+0

それが重複している、あなたはそれらの他のページのいずれかからの答えをしようとしたのですか? – Inian

+0

あなたのbashバージョンは何ですか? – anubhava

+0

@Inianはい、出力がnullです。 – forkfork

答えて

1

#!/bin/bash 

n=50 # number of line to read every time 

while read -r && arr=("$REPLY"); do 
    # read n-1 lines using a for loop 
    for ((i=1; i<n; i++)); do 
     read -r && arr+=("$REPLY") 
    done 
    # call your script using 50 element array as argument 
    bash ${DIR}/Downloader.sh "${arr[@]}" & 
done < file 
関連する問題