bash从ping命令只得到ms

时间:2019-01-23 21:20:37

标签: bash

我怎样才能在没有任何前缀等情况下仅ping响应时间

我现在正在做什么,但是它返回time = 56.7,我只需要56.7

timeinms=$(ping -c 1 $ipaddress | grep 'time' | awk '{print $7}')
echo $timeinms

1 个答案:

答案 0 :(得分:1)

使用GNU grep的PCRE选项:

timeinms=$(ping -c 1 $ipaddress | grep -oP 'time=\K\S+')

在这里我们在一行中搜索time=,如果找到了该行,则由于\K指令而将匹配项重置,并打印文本直到下一个空格。

备用解决方案,使用sed

timeinms=$(ping -c 1 $ipaddress | sed -nE 's/.*time=([0-9.]+).*/\1/p')