Re: Allez perle ! ('etait Re: [SSFR] Comptage)

[ Thread Index | Date Index | More debianworld.org/shellscript-fr Archives ]


En premier lieu, on est a peu pret d'accord pour dire
quand c'est simple nawk et pis voila ! et quand c'est
complique c'est perl, mais....

Philippe Jacquot a écrit :
> Christophe Martin a écrit :
[cric crac croc]
>> La plupart du temps, si c'est juste pour tier trois colonnes et
>> additionner 4 nombres, c'est pas la peine de sortir perl, nawk fait
>> ca tres bien et en plus y'a des cas ou nawk est tres sup'erieur
>> `a perl. Selon les dire du grand Larry soi meme, par la voix de
>> perlvar(1) :
>>
[jblouing]
> Entièrement d'accord. Toutefois lorsqu'il s'agit d'effectuer, à partir
> du même fichier de plusieurs centaines de lignes, différents
> traitements, tris et affichages, il est considérablement plus efficace
> de tout charger une fois pour toute (genre dans un tableau
> bidimensionnel) pour ensuite utiliser des fonctions de tri ou
> d'affichage (vazy pour faire un tri complexe avec awk (qui reste orienté
> lignes).. bonjour la réentrance :-)).
Ben oui et non.
Nawk fait des tableaux multidimensionnels tres bien. et pis si
tu veux faire des tris, c'est pas sorcier de trouver un algo
quicksort et de l'implanter en awk. Je le sais, je l'ai deja fait.
(Juste, je retrouve plus ce script, ce qui peut pas arriver avec perl
qui doit bien avoir ca en interne...;-)

Mais le probleme c'est qu'on a tendance a tout charger en memoire (pas le
choix pour trier puisqu'avant d'avoir la derniere valeur, on peut pas
deviner ou la ranger (Les pros du tri : pas taper, je sais qu'il esxiste
des tris pour tout et toutes les conditions etc... etc...))
Et quand on charge tout en memoire un jour ou l'autre ca plante.

sed peut traiter des fichiers de plusieurs Peta-octets (en fait il a pas de
limite) pourvu que les lignes tiennent dans le pattern-space
Avec awk, j'ai tendance a construire des trucs genre traitement en ligne,
et eventuellement un petit tableau recapitulatif, ca bouffe rien en RAM. Par
contre, les horreurs comme cdlabelgen (un bidule en perl) qui font :
	slurp $document
	slurp $template
	$template =~ s/MARQUE-OU-INSERER-LE-DOCUMENT/$document/
	print template
Ca merde le jour ou un con comme moi, veut y inserer un document pas si
enorme, mais quand meme pas si petit (121 Mo).
alors qu'en separant le template en deux, un bon vieux
	cat template-1 document template-2
insererai un document de plusieurs GIGA sans broncher.

Bref, J'aime pas "Tout charger en memoire", ca fait souffrir les machines.
Quand y'a pas le choix, ou quand 3 lignes de perl font 678354165 lignes
de bash/sed,nawk,find,grep,join,cat,<,>,rm,|,xargs,eval etc...
alors bien sur...

> Enfin, ce n'est qu'un avis de béotien.   :-)
Tout pareil ;-)

	Bon week end
	Christophe

PS
Tu peux arreter de poster en HTML ?



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/