Estrazione del valore di latenza dall'output di ping

4

Sto cercando di estrarre un valore di latenza da un ping con il seguente comando:

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

Ma voglio rimuovere le cifre dopo .

Quindi anziché 282.117ms US

Mi piacerebbe vedere 282ms US

Che cosa deve essere aggiunto al comando per farlo?

    
posta Laurent 08.01.2016 - 05:19
fonte

1 risposta

1

Ci sono probabilmente centinaia di modi per farlo con gli strumenti Unix standard. Per elencarne solo alcuni:

# 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"
    
risposta data 08.01.2016 - 08:06
fonte

Leggi altre domande sui tag