J'ai écrit un script bash au format suivant:
#!/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."
La while
boucle va lire $inFile
, effectuer une activité sur la ligne et vider le résultat $outFile
.
Comme la $inFile
longueur de 3500+ lignes, le script prendrait 6-7 heures pour s'exécuter complètement. Afin de minimiser ce temps, je prévois d'utiliser le multi-threading ou le forking dans ce script. Si je crée 8 processus enfants, 8 lignes du $inFile
seront traitées simultanément.
Comment cela peut-il être fait?