Extraer el valor de latencia de la salida de ping

4

Estoy intentando extraer un valor de latencia de un ping con el siguiente comando:

ping -c 1 206.190.36.45 | awk -F" |=" '/time/{print $10"ms YH"}'

Pero quiero eliminar los dígitos después de .

Entonces, en lugar de 282.117ms US

Me gustaría ver 282ms US

¿Qué se debe agregar al comando para hacerlo?

    
pregunta Laurent 08.01.2016 - 05:19

1 respuesta

1

Probablemente hay cientos de formas de lograr esto con las herramientas estándar de Unix. Para enumerar solo algunos de ellos:

# extending what you have
ping -c 1 206.190.36.45 | awk -F" |=" '/time/{print $10"ms YH"}' | sed -e 's/\..*ms/ms/

# using awk only
ping -c 1 206.190.36.45 | awk -F" |=" '/time/{printf "%i%s\n", $10, "ms YH"}'

# using sed instead
ping -c 1 206.190.36.45 | sed -n '/time=/s/.*time=\(.*\)\..*/ms YH/p'

# a rather different approach (just for the fun of it, not really recommended)
echo "$(ping -c 1 206.190.36.45 | fgrep time= | cut -d= -f 4 | cut -d. -f 1)ms YH"
    
respondido por el nohillside 08.01.2016 - 08:06

Lea otras preguntas en las etiquetas