bash performance shell awk grep

bash - grep-vf demasiado lento con archivos grandes



performance shell (1)

Basado en la solución de Inian en la publicación relacionada , este comando awk debería resolver su problema:

awk ''FNR==NR {hash[$0]; next} !($0 in hash)'' filter.txt data.txt > op.txt

Estoy intentando filtrar datos de data.txt usando patrones almacenados en un archivo filter.txt. Como abajo,

grep -v -f filter.txt data.txt > op.txt

Este grep toma más de 10-15 minutos para 30-40K líneas en filter.txt y ~ 300K líneas en data.txt.

¿Hay alguna forma de acelerar esto?

data.txt

data1 data2 data3

filter.txt

data1

op.txt

data2 data3

Esto funciona con la solución provista por codeforester pero falla cuando filter.txt está vacío.