Re: Expression régulière
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
Reply to: