ping結果を単純な形式(例:「10ms」)で印刷します。

ping結果を単純な形式(例:「10ms」)で印刷します。

「ping -c 1 www.google.com」を実行するたびに、次のような結果が表示されます。

PING www.google.com (xxx.xx.xxx.xxx) 56(84) bytes of data.
64 bytes from xxxxxxxx-xx-xxxxxxxxxx.net (xxx.xx.xxx.xxx): icmp_seq=1 ttl=56 
time=25.8 ms

--- www.google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 25.816/25.816/25.816/0.000 ms

しかし、次のような単純な形式でpingを印刷したいと思います。

[23:00:25] 25.8 ms

この目標をどのように達成できますか?これまで私は試しました

ping -c 1 www.google.com | grep -oP '(?<=time\s/)w+' > ping.txt

時間なしでpingを印刷しますが、推測できるように動作しません。

ベストアンサー1

努力する

ping -c 1 www.google.com | awk 'NR==2{print strftime("[%T]",systime()),substr($8,6),"ms"}'

現在時刻を取得し、systime()%T表現(hh:mm:ss)の形式で指定するために使用されますstrftime。次に、フィールド8の関連部分を印刷し、time=不意の部分を除去する。

はい

ping -c 1 www.google.com | awk 'NR==2{print strftime("[%T]",systime()),substr($8,6),"ms"}'
[21:32:05] 1.03 ms

おすすめ記事