Eine Möglichkeit besteht darin, einfach einen Schnitt zu dem hinzuzufügen, was Sie dort haben.
ping -c 4 www.stackoverflow.com | tail -1| awk '{print $4}' | cut -d '/' -f 2
Das könnte für Sie funktionieren:
ping -c 4 www.stackoverflow.com | sed '$!d;s|.*/\([0-9.]*\)/.*|\1|'
Die folgende Lösung verwendet nur Bash (erfordert Bash 3):
[[ $(ping -q -c 4 www.example.com) =~ \ =\ [^/]*/([0-9]+\.[0-9]+).*ms ]] \
&& echo ${BASH_REMATCH[1]}
Für den regulären Ausdruck ist es einfacher zu lesen (und zu handhaben), wenn er in einer Variablen gespeichert ist:
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}'
würde gut funktionieren.
Die Option "-F" wird verwendet, um das Feldtrennzeichen anzugeben.