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

Re: Rechercher une ligne dans un gros fichier trié



Le Sun, Nov 14, 2004 at 04:43:21PM +0100, Lehmann Guillaume écrivait/wrote:
> 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 ?

Non, parce que les fichiers ne sont pas organisés en lignes. Une ligne
est une suite de caractère terminée par le caractère newline.

> >
> >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 [...]
> 

Ceci étant dit, une solution pourrait être d'utiliser un fichier
indexé NDBM ou DBM ou DB pour ça.

On peut ecrire un petit script en Ruby ou Ocaml ou Perl ou Python pour
ça.

Une solution plus lourde (trop usine à gaz pour ça) serait de passer
par un SGBDR comme MySQL ou PostgreSQL.


P.S. C'est dommage que l'automate de cette liste ne positionne pas
automatiquement le reply-to vers cette liste...

-- 
Basile STARYNKEVITCH         http://starynkevitch.net/Basile/ 
email: basile<at>starynkevitch<dot>net 
aliases: basile<at>tunes<dot>org = bstarynk<at>nerim<dot>net
8, rue de la Faïencerie, 92340 Bourg La Reine, France



Reply to: