首页 > 解决方案 > 从 ping 中删除摘要信息的命令行选项

问题描述

我目前正在设置一个脚本来测量我的家庭互联网连接的延迟,因为目前执行此操作的外部服务报告了一些问题。无论是直接使用 IP 地址还是使用指向同一 IP 地址的 DNS 地址,外部服务似乎都会给出不同的结果。

一个会随机(并且两者都这样做)似乎无缘无故停止连接,而另一个继续返回结果。

我目前正在编写自己的脚本来做同样的事情,看看这是否是他们的软件有问题(诚然他们认为可能是这样),或者我的连接是否很奇怪。

我在英国伦敦,下行 1Gig,上行 50mbps,因为是的,这是我所在地区最好的。

到目前为止我有

ping -D -c 55 [insert ip or dns address] >> latency-[ip or dns].log
ping -D -c 55 [insert ip or dns address] >> latency-[ip or dns].log

在我用于其他事情的 Linux(CentOS v7)VPS 上的 .sh 文件中。

但输出看起来像这样

PING [ip or dns] ([ip]) 56(84) bytes of data.
[1611310205.654229] 64 bytes from [reverse-dns] ([ip]): icmp_seq=1 ttl=52 time=18.8 ms

--- [ip or dns] ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9014ms
rtt min/avg/max/mdev = 8.268/11.192/18.883/2.943 ms

有没有办法删除摘要和第一行,因为如果有意义的话,我宁愿将其设置为仅包含结果列表。(我已经阅读了手册页,但找不到它)

标签: linuxcentos7ping

解决方案


您可以使用 awk 解析日志文件并删除摘要行:

awk 'NR == 1 { next } /^$/ { exit }1' latency-[ip or dns].log

如果记录号是一个(第一行),则跳到下一行。当一行是空行时(就在结束摘要之前),退出。在所有其他情况下,打印行 (1)


推荐阅读