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

Re: Expression régulière



Marc Chantreux a écrit :
> 
>> Bon alors le terme "réfléchir" était mal choisi...
>> Je voulais dire que ce genre de chose est assez basique tout de même et
>> qu'avec un peu de lecture on y arrive sans peine.
> 
> Oui ... et en lisant un peu plus loin, on se rend compte que le problème
> n'est pas si basique que ca. Par exemple : la solution sera totalement
> différente en fonction du volume de données a traiter.
> 
> Dans tous les cas, je crois lancer 2 fois cut n'était pas une bonne idée.
> 
> Voici 3 facons de faire ( 1 avec cut et 2 sans aucune commande externe )
> 
>> for f ( * ) { echo -e "\n\n$f ---------------\n" ; cat $f ;echo ;
> command time dash $f }
> 
> 
> cut.sh ---------------
> 
> line='rtt min/avg/max/mdev = 33.978/37.560/52.277/5.500 ms, ipg/ewma
> 200.289/37.388 ms
> ' | cut -d" " -f4 | cut -d"/" -f1 > /dev/null
> 
> 0.00user 0.00system 0:00.01elapsed 80%CPU (0avgtext+0avgdata 0maxresident)k
> 0inputs+0outputs (0major+461minor)pagefaults 0swaps
> 
> 
> shellway2.sh ---------------
> 
> echo 'rtt min/avg/max/mdev = 33.978/37.560/52.277/5.500 ms, ipg/ewma
> 200.289/37.388 ms' |
> while IFS=' ' read rtt names equals values rest; do
>     echo $values | while IFS='/' read mix avg max ; do
>                 echo min $mix > /dev/null
>     done
> done
> 
> 0.00user 0.00system 0:00.00elapsed 83%CPU (0avgtext+0avgdata 0maxresident)k
> 0inputs+0outputs (0major+227minor)pagefaults 0swaps
> 
> 
> shellway.sh ---------------
> 
> line='rtt min/avg/max/mdev = 33.978/37.560/52.277/5.500 ms, ipg/ewma
> 200.289/37.388 ms'
> vire_prefix=${line%ms, *}
> final=${vire_prefix#*=}
> echo $final | while IFS='/' read mix avg max ; do
>         echo min $mix > /dev/null
> done
> 
> 0.00user 0.00system 0:00.00elapsed 75%CPU (0avgtext+0avgdata 0maxresident)k
> 0inputs+0outputs (0major+189minor)pagefaults 0swaps
> 
> 
> 
Oui bien sûr
Il faut être sérieux...
1°) on n'a pas parlé ici de volumes considérables de données...
2°) franchement ces considérations seront-elles pertinentes pour des
gens qui ignorent la commande "cut" (ceci dit sans aucun à-priori, il
faut bien commencer un jour...) ?
3°) j'ai bien précisé que je donnais UNE solution et en l'occurence la
première qui me venait à l'esprit. Que celle-ci ne soit pas optimale je
veux bien en convenir...Mais ça n'est pas trop le propos.
4°) en utilisant parot on devrait obtenir encore de bien meilleures perfs...

Trève de plaisanterie, ce que je faisais juste remarquer et qui reste
valable , c'est que sans trop de peine, on peut obtenir rapidement une
solution convenable (quoique non optimale) en ayant cherché un peu.
Ce que le Monsieur a admis du reste.

P.



Reply to: