[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Rechercher une ligne dans un gros fichier trié



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



Reply to: