J'ai FILE_A qui a plus de 300 000 lignes et FILE_B qui a plus de 30 millions de lignes. J'ai créé un script Bash qui greps chaque ligne dans FILE_A dans FILE_B et écrit le résultat de la grep dans un nouveau fichier.
L'ensemble de ce processus prend plus de 5 heures.
Comment puis-je améliorer les performances de mon script?
J'utilise grep -F -m 1
comme commande grep. FILE_A ressemble à ceci:
123456789
123455321
et FILE_B est comme ceci:
123456789,123456789,730025400149993,
123455321,123455321,730025400126097,
Donc, avec Bash, j'ai une while
boucle qui sélectionne la ligne suivante dans FILE_A et la récupère dans FILE_B. Lorsque le motif se trouve dans FILE_B, je l'écris dans le fichier result.txt.
while read -r line; do
grep -F -m1 $line 30MFile
done < 300KFile