J.Pierre Pourrez wrote:
Bonjour,
J'utilise grep pour rechercher une ligne dans un fichier trié de 14000
lignes.
Une seule et unique ligne ?
Je suppose que la recherche se fait ligne par ligne dans le fichier et
cela me semble un peu bourrin quand la recherche s'effectue plusieurs
centaines de fois.
Existe-t-il un remplaçant pour grep qui effectue une recherche plus
rapide genre recherche par dichotomie ?
Je souhaite utiliser cela dans un script shell.
L'option -m de grep permet d'arrêter la recherche une fois
trouvée N fois la ligne. Donc si tu prends 1 comme valeur, dès
que la ligne est trouvée, il s'arrêtera. Au pire c'est comme si
tu parcourais les 14000 lignes (la ligne recherchée se trouve à
la fin), au mieux, tu ne parcoureras que quelques centaines de
ligne (la ligne recherchée est vers le début). Suivant la
fréquence à laquelle tu fais tes recherches et la puissance de ta
machine, ca pourra aller ou pas.
Je ne connais pas d'outil sinon pour faire une recherche par
dichotomie et je pense que si j'en avais besoin, avec une boucle
'for' et la commande 'nl' j'arriverai à trouver mon bonheur :)
Bon we.
Guillaume