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:
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