Ho scritto uno script bash che è nel seguente formato:
#!/bin/bash
start=$(date +%s)
inFile="input.txt"
outFile="output.csv"
rm -f $inFile $outFile
while read line
do
-- Block of Commands
done < "$inFile"
end=$(date +%s)
runtime=$((end-start))
echo "Program has finished execution in $runtime seconds."
Il while
loop leggerà $inFile
, eseguirà alcune attività sulla linea e scaricherà il risultato $outFile
.
Poiché le $inFile
righe sono oltre 3500, lo script impiegherà 6-7 ore per l'esecuzione completa. Per ridurre al minimo questo tempo, sto pensando di usare il multi-threading o il fork in questo script. Se creo 8 processi figlio, 8 linee da $inFile
verranno elaborate contemporaneamente.
Come si può fare?