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?

Odpowiedzi:


5
fgrep -f indices db 

powinien być szybszy.


„fgrep” zwykle nie jest najszybszym wariantem grep. Może się okazać, że egrep jest jeszcze szybszy.
njd

1
Jesteś tego pewien?
Zsolt Botykai
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.