[gull] Truc et astuces: bash redirection et gnuplot sans ficher temporaires
felix
felix at f-hauri.ch
Tue Oct 25 09:49:24 CEST 2016
Bonjour,
Voici une ligne de commande qui permet de lancer gnuplot pour présenter
des délais de réponse au ping, sans fichier temporaire, ni *.plot :
gnuplot -p -e "
set xdata time;
set timefmt '%s';
set xrange [ '$(date +%s)' : '$(date -d 'now +30 seconds' +%s)' ];
plot '-' using 1:2 with line title 'ping google';" < <(
(
ping -c 30 -n google.com |
sed -u 's/^64.*time=\([0-9.]\+\) .*$/\1/p;d' |
tee >(sed -u 's/.*/now/'| stdbuf -oL date -f - +d%s)
) | sed -u 'N;s/\n/ /;s/\([0-9.]\+\) d\([0-9]\+\) */\2 \1/;s/d//' |
tee >(printf "%(%T)T %s\n" $(</dev/stdin) |
column -c $COLUMNS >&2 )
)
Mise en page et exemple en image: http://stackoverflow.com/a/40159300/1765658
Comme d'habitudes, cette "petite" ligne est bourrée de trucs et autres
bashismes...
En particulier, la commande
`printf "%(...)T..." $(</dev/stdin)`
qui, par oposition à
`xargs printf ...`
permet d'utiliser la fonction printf interne de bash, plutôt que
/usr/bin/printf (qui ne connait pas "%(...)T" ).
Cependant, je doute que cette syntaxe soit aussi robuste que `xargs`!!
--
Félix Hauri - <felix at f-hauri.ch> - http://www.f-hauri.ch
More information about the gull
mailing list