Le Sun, Nov 14, 2004 � 04:43:21PM +0100, Lehmann Guillaume a �crit
> 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.

Si chaque fois est suite � une action d'un op�rateur humain les d�lais de grep
sont raisonnables. je viens de faire un test (portable PIII 500Mhz, 512 Mo) : 
$ time grep -e 'zzzzzzzz' *

real    0m0.071s
user    0m0.030s
sys     0m0.040s
$ pwd
/usr/share/doc/postgresql-doc/html
$ wc -l *|grep total
 329529 total
$ du -hs
6,4M    .

Si entre les modifications du fichier les m�mes motifs de grep sont utilis�s
plusieurs fois il peut �tre int�rressant de stocker les r�sultats positifs de
grep dans un fichier acc�l�rateur.

Maintenant si le fichier est modifi� souvent que les recherches sont toutes
diff�rentes et ex�cut�es dans le cadre d'un traitement automatique qui montre
des probl�mes de performance alors la ces m�thodes seront insuffisantes surtout
si la m�moire de la machine est insuffisante pour tout garder en m�moire
fichier compris.

> >
> >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
> 
> 
> -- 
> Pensez � lire la FAQ de la liste avant de poser une question :
> http://wiki.debian.net/?DebianFrench
> 
> Pensez � rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
> 
> To UNSUBSCRIBE, email to [EMAIL PROTECTED]
> with a subject of "unsubscribe". Trouble? Contact 
> [EMAIL PROTECTED]

-- 
 Francois Mescam
 

Répondre à