Najbardziej wydajny sposób na podzbiór linii

5

Mam dwa pliki. Jedna duża (200 000 linii) o nazwie „db” i jedna duża (15 000+ linii) zwana „indeksami”.

Jaki jest najszybszy sposób filtrowania linii w „db” zawierających dowolny indeks (w dowolnym miejscu linii) z „indeksów”

Rozwiązanie, o którym mogłem myśleć, to

for index in $(cat indices); do
  grep $index db >> selection
done;

ale to zajmuje dużo czasu.

Czy w bashu, linuxie istnieje szybsze podejście?

Peter Smit
źródło

Odpowiedzi:

5
fgrep -f indices db 

powinien być szybszy.

Zsolt Botykai
źródło
„fgrep” zwykle nie jest najszybszym wariantem grep. Może się okazać, że egrep jest jeszcze szybszy.
njd
1
Jesteś tego pewien?
Zsolt Botykai