Quiero extraer del comando ping -c 4 www.stackoverflow.com | tail -1| awk '{print $4}'
el tiempo promedio.extraer tiempo promedio de ping -c
107.921/108.929/110.394/0.905 ms
salida debería ser: 108.929
Quiero extraer del comando ping -c 4 www.stackoverflow.com | tail -1| awk '{print $4}'
el tiempo promedio.extraer tiempo promedio de ping -c
107.921/108.929/110.394/0.905 ms
salida debería ser: 108.929
Una forma es simplemente añadir un corte a lo que tienes ahí.
ping -c 4 www.stackoverflow.com | tail -1| awk '{print $4}' | cut -d '/' -f 2
ping -c 4 www.stackoverflow.com | tail -1| awk -F '/' '{print $5}'
would fine.
La opción "-F" se usa para especificar el separador de campo.
Esto podría funcionar para usted:
ping -c 4 www.stackoverflow.com | sed '$!d;s|.*/\([0-9.]*\)/.*|\1|'
La siguiente solución utiliza Bash única (requiere Bash 3):
[[ $(ping -q -c 4 www.example.com) =~ \ =\ [^/]*/([0-9]+\.[0-9]+).*ms ]] \
&& echo ${BASH_REMATCH[1]}
Para la expresión regular que es más fácil de leer (y manejar) si se almacena en una variable:
regex='= [^/]*/([0-9]+\.[0-9]+).*ms'
[[ $(ping -q -c 4 www.example.com) =~ $regex ]] && echo ${BASH_REMATCH[1]}
Es posible que desee cambiar la expresión regular a' = [^ /] */([0-9.] +). * ms 'para incluir valores promedio sin ningún lugares decimales. – gsbabil
Promover luissquall's very elegent comment a una respuesta:
ping -c 4 www.stackoverflow.com | awk -F '/' 'END {print $5}'
extracto Directo tiempo medio de comando ping:
ping -w 4 -q www.duckduckgo.com | cut -d "/" -s -f5
Opciones:
-w time out 4 seconds
-q quite mode
-d delimiter
-s skip line without delimiter
-f No. of field - depends on your system - sometimes 5th, sometimes 4th
I personly uso es de esta manera:
if [ $(ping -w 2 -q www.duckduckgo.com | cut -d "/" -s -f4 | cut -d "." -f1) -lt 20 ]; then
echo "good response time"
else
echo "bad response time"
fi
THX, que hizo el truco . Aunque me pregunto sobre una mejor manera con menos tuberías y, finalmente, con un mejor rendimiento. – jack
@jack: después de un mínimo de cuatro segundos para obtener los datos reales, los pequeños gastos generales en esta tubería probablemente nunca importen. –