GNU/Linux >> Linux Esercitazione >  >> Linux

estrarre il tempo medio da ping -c

Un modo è semplicemente aggiungere un taglio a ciò che hai lì.

ping -c 4 www.stackoverflow.com | tail -1| awk '{print $4}' | cut -d '/' -f 2

Questo potrebbe funzionare per te:

ping -c 4 www.stackoverflow.com | sed '$!d;s|.*/\([0-9.]*\)/.*|\1|'

La seguente soluzione utilizza solo Bash (richiede Bash 3):

[[ $(ping -q -c 4 www.example.com) =~ \ =\ [^/]*/([0-9]+\.[0-9]+).*ms ]] \
&& echo ${BASH_REMATCH[1]}

Per l'espressione regolare è più facile da leggere (e gestire) se è memorizzata in una variabile:

regex='= [^/]*/([0-9]+\.[0-9]+).*ms'
[[ $(ping -q -c 4 www.example.com) =~ $regex ]] && echo ${BASH_REMATCH[1]}

ping -c 4 www.stackoverflow.com | tail -1| awk -F '/' '{print $5}' funzionerebbe bene.

L'opzione "-F" viene utilizzata per specificare il separatore di campo.


Linux
  1. Come estraggo un singolo pezzo di byte dall'interno di un file?

  2. Come estrarre il testo con OCR da un PDF su Linux?

  3. Come misurare il tempo medio di esecuzione di uno script?

  4. Ping e tcpdump allo stesso tempo

  5. estrarre le linee dal basso fino alla corrispondenza regex

Il tempo di vita ha superato l'errore ping

Linux Ping:mostra il timeout

Riga di comando:estrai la sottostringa dall'output

Estrai le date da /etc/shadow

Cosa impedisce a una macchina di rispondere ai ping?

Estrai i percorsi mancanti dall'array di percorsi bash