Bucle muy lento usando grep o fgrep en grandes conjuntos de datos

Estoy tratando de hacer algo bastante simple; grep de una lista, una coincidencia exacta para la cadena, en los archivos de un directorio:

#try grep each line from the files
for i in $(cat /data/datafile); do 
LOOK=$(echo $i);
fgrep -r $LOOK /data/filestosearch >>/data/output.txt
done

El archivo con las coincidencias con grep tiene 20 millones de líneas, y el directorio tiene ~ 600 archivos, con un total de ~ 40 millones de líneas. Puedo ver que esto será lento, pero estimamos que tomará 7 años. Incluso si uso 300 núcleos en nuestro HPC dividiendo el trabajo por archivos para buscar, parece que podría tomar más de una semana.

hay preguntas similares:

Loop Running MUY Lento :

Bucle foreach muy lento

Aquí y aunque están en diferentes plataformas, creo que posiblemente, si no, podría ayudarme. o fgrep, que es potencialmente más rápido (pero parece ser un poco lento, ya que lo estoy probando ahora) ¿Alguien puede ver una forma más rápida de hacer esto? Gracias de antemano

Respuestas a la pregunta(5)

Su respuesta a la pregunta