Rapide de chaîne de recherche dans un fichier très volumineux

Quelle est la méthode la plus rapide pour la recherche de lignes dans un fichier contenant une chaîne de caractères. J'ai un fichier contenant des chaînes de caractères à rechercher. Ce petit fichier (smallF) contient environ 50 000 lignes et ressemble:

stringToSearch1
stringToSearch2
stringToSearch3

Je recherche l'ensemble de ces chaînes dans un fichier de plus grande taille (environ de 100 millions de lignes). Si une ligne dans ce fichier contient la chaîne de recherche de la ligne est imprimée.

La meilleure méthode que j'ai mis au point jusqu'à présent est

grep -F -f smallF largeF

Mais ce n'est pas très rapide. Avec seulement 100 chaînes de recherche dans smallF il faut environ 4 minutes. Pour plus de 50.000 chaînes de recherche, il va prendre beaucoup de temps.

Est-il une méthode plus efficace?

Pas de. C'est la méthode la plus efficace, à moins que vous pouvez parallélisation de la recherche, ou d'écrire une fin particulière de programme.
Voir: plus Rapide possible grep
fgrep au lieu de grep -F devrait être un peu plus vite...
de GNU grep de la page de manuel: "fgrep est le même que grep -F"
Pour clarifier ce qui est du contenu de /usr/bin/fgrep #!/bin/sh exec grep -F "$@"

OriginalL'auteur user262540 | 2016-06-08